プロが教えるわが家の防犯対策術!

エクセルについて教えてください。
以下のサイトで紹介しているエクセルの外部データの取り込みについてです。
http://www11.plala.or.jp/koma_Excel/contents6/ma …
自分が持っている古いエクセルでは問題ないのですが、会社のoffice 365のエクセルでやりたいのですが、かなり違っていて、どうすればいいのか教えていただければと思います。
(Office 365 エクセルは会社のエクセルで、記憶で書くので、間違いがあるかもしれません。)

元になるシートは「オリジナル」として、表自体はシートの端から少し離れています。
最初、office 365のエクセルには 「データ/外部データの取り込み」 が見つからず、仕方ないので、「テーブルまたは範囲から」を選択すると、Power Query が開きます。Power Query と言うくらいなので、Microsoft Query より多機能かと思ったのですが、サイトの説明にあるような事がどうもできそうもありません。(説明にあるようなメニューやコマンドが見つかりません。)
仕方ないのでPower Queryを閉じると、新しいシート(sheet1)ができました。
その後、いろいろ探していると「データ/データの取得/その他のデータソースから/Microsoft Queryから」と言うのが見つかったので、そこから始めると一度はうまく行きました。
ところが、再度、何度か試すと、「Microsoft Queryから」がグレーアウトして選べなかったり、サイトの説明の[図04108]で、「オリジナル」シートは表示されるのに「sheet1」シートが現れなかったり、クエリの列の項目がF1, F2, F3, ...となって、項目名がちゃんと現れなかったり、それ以降、一度もできません。

Office 365のエクセルでMicrosoft Queryが安定して動作させる方法か、あるいは、Power Queryでサイトと野説明と同じ事ができる方法、どちらでもかまいません。分かりやすい説明サイトとかありましたら、よろしくお願いします。

質問者からの補足コメント

  • リンクを張ったサイトの説明を読んでもらえてないようです。
    >「外部データーの取り込み」は、元データーがExel以外の場合ですよね?
    私も最初、そう思っていました。サイトの説明を読めば、実際はExcelファイルそれ自身も対象になることがわかります。

    元データは、サイトの説明と同じように、同じエクセルファイルのシートと言う事は書きました。違いは表が(C3)(だったかな)セルからはじまっている事(つまりA,B列と1,2行が空白と言う事)ぐらいです。特別な表ではありません。リンクを張ったサイトの説明の表で考えてもらえば十分です。

    No.2の回答に寄せられた補足コメントです。 補足日時:2019/07/14 15:36
  • ありがとうございます。

    >Excelから直接記述もできます。
    この方法を解説したサイトとか無いでしょうか。

    よろしくお願いします。

    No.3の回答に寄せられた補足コメントです。 補足日時:2019/07/14 22:30
  • へこむわー

    ありがとうございました。おかげさまでうまくいきました。
    それで、もう一つ教えていただけないでしょうか。
    出来たファイルをメールで営業所に送って、各自のメールIDで抽出してデータをチェックしてもらおうと思っていたのですが、試しに上司にメールして動作を確認しようとしたら、メールIDを選択した時点で「データベースが見つからない」とエラーが出ます。そこには、そのファイルを作った私のPCのファイルのフルパスが示されていました。上司のPCでファイルを選びなおせば、一応動くのですが、そんなことを皆にやってもらう事はできません。
    なんとか、回避する方法はないものでしょうか。
    よろしくお願いいたします。

    No.4の回答に寄せられた補足コメントです。 補足日時:2019/07/18 01:07
  • ありがとうございます。

    上司と相談したら、サーバーを使うのはアクセス権とかの問題で、すぐ対応できないような事を云うので、「ファイルの保存場所を切り替えるマクロ」を考えたいのです。
    「ファイルの保存場所」書き込む場所と言うのは、教えていただいたサイトの「★その2:SQLで抽出コードを記入する」の「接続のプロパティ」ダイアログボックスの定義タブの「接続文字列」の中を書き換えればよいのでしょうか。

    よろしくお願いいたします。

    「office 365 excel での 」の補足画像4
    No.5の回答に寄せられた補足コメントです。 補足日時:2019/07/20 13:47

A 回答 (6件)

はい 接続文字列を変えてやるだけで大丈夫です。



Public jlFN As String, cnnct As Object

Sub QTReset(myCnnctN As String, jlFN)
With ThisWorkbook.Connections(myCnnctN).ODBCConnection
.Connection = Array( _
"ODBC;DSN=Excel Files;" & _
"DBQ=" & jlFN & ";" & _
"DefaultDir=" & Dir(jlFN) & ";" & _
"DriverId=1046;" & _
"MaxBufferSize=2048;" & _
"PageTimeout=5;")
End With
End Sub

これを起動時に実行するようにしておけばいいです。
全部一括でやっていいなら

Sub Auto_Open()
jlFN = ThisWorkbook.FullName
For Each cnnct In ThisWorkbook.Connections
Call QTReset(cnnct.Name, jlFN)
Next cnnct
End Sub

こんな形でいいです。
「ActiveWorkbook.RefreshAll」が必要なら追加で実行。
    • good
    • 0
この回答へのお礼

ありがとうございます。
うまくできました。
本当に感謝いたします。

お礼日時:2019/07/23 00:14

保存場所を変更されない共有できる場所(ファイルサーバ上など)


に移して そこを参照しにいくようにしないとまずいですね。

どうしてもそれぞれの PCで管理するということでしたら 開いた
時にファイルの保存場所を切り替えるマクロを仕込んでおくくら
いです。
この回答への補足あり
    • good
    • 0

> この方法を解説したサイトとか無いでしょうか。


ほとんどないと思いますよ。私自身なくて困った覚えがあります。

Excel:条件を指定して抽出する3(パラメータクエリ編)
https://chiquilin.web.fc2.com/data/160502_extrac …
ここに最低限の説明は載せてます。

用語の説明は
https://chiquilin.web.fc2.com/data/070309_data_i …
こっちを参考にしてください。
この回答への補足あり
    • good
    • 0
この回答へのお礼

ありがとうございます。
あんなところにSQLの記述があるのですね。SQLの記述はかなり昔、勉強した事があります。思い出して、明日、試したいと思います。

お礼日時:2019/07/15 12:01

PowerQueryは外部データの取り込み機能とは違います。



[データ]→[その他のデータ ソース]→[Microsoft Query]
から指定します。

あとパラメータクエリは Microsoft Queryで直接指定しな
くても SQLが分かるなら Excelから直接記述もできます。
この回答への補足あり
    • good
    • 0

肝心の取り込みたい元データーが何なのか書いてないので、どうしたいのかがイマイチ分かりません。


「外部データーの取り込み」は、元データーがExel以外の場合ですよね?
だから、どんな形式のファイルなのかを書かないと相談にならないですよ。
私が「外部データーの取り込み」を使うのは、CSVやTEXTファイルの場合とwebページの場合ですが、開くファイルを選ぶところでファイル形式を選べば良いですよ。
元ファイルがExelファイルなら、外部ファイルではなく、普通に「開く」で開くだけですね。
この回答への補足あり
    • good
    • 0
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!