- ベストアンサー
外部データを取り込むマクロ
マクロ初心者です。 デスクトップ上にCSVファイルを出力し、それをエクセルに取り込んで、 そのデータを見やすく加工するマクロを作りました。 自分のパソコンだとうまく実行できますが、 社内の他の人のパソコンだとできません。 CSVのデータは、共有のオラクルからデータを出力しているので、同じものです。 実行しようとすると、 「実行時エラー1004 外部データ範囲を更新するためのテキスト ファイルが見つかりません テキスト ファイルが移動または名前が変更されていないことを確認し、 再度実行してください」 と言われ、 デバッグするとVBAで .Refresh BackgroundQuery:=False が黄色くなっています。 どうすればうまくいきますか? 教えてください。よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 > 外部データ範囲を更新するためのテキスト ファイルが見つかりません それは、ファイル名が取れていません。 >共有のオラクルからデータを出力しているので、 というと、共有フォルダか何かですか? ファイル名の指定をどのようにしているかは分かりませんが、 FileName = Application.GetOpenFilename("CSV ファイル(*.csv),*.csv") 一度、このような方法で、ファイル名を取って、 ActiveSheet.QueryTables.Add(Connection:= "TEXT;" & FileName, Destination:=Range("A1")) としてみたらいかがですか? また、記録マクロで作った、QueryTables をお使いになっているのだと思います。QueryTable は、初心者の方でも、ほとんど手を入れることがなく、マクロが作れます。 この種のマクロで気をつけるのは、2点あります。 マクロの最後に、 ActiveSheet.UsedRange.QueryTable.Delete と入れて、QueryTable を削除したほうが、何かと自由度が高くなります。 もうひとつは、なるべく、列の自動調整はやめたほうがよいようです。 AdjustColumnWidth = False 今のところ、この程度です。なお、これで分からないようでしたら、コードを出してください。
その他の回答 (1)
- papayuka
- ベストアンサー率45% (1388/3066)
C:\Documents and Settings\ユーザー名\デスクトップ のように記述されてる部分があるハズなので、そこを実行環境に合わせて可変させるようにします。 マクロを全部載せてみたらどうでしょう?
お礼
回答ありがとうございます。 すみません、自己解決しました。 外部データの取り込みまでは手動ですることにしました。 お礼が遅くなり申し訳ありませんでした。
お礼
回答ありがとうございます。 すみません、自己解決しました。 外部データの取り込みまでは手動ですることにしました。 お礼が遅くなり申し訳ありませんでした。