• ベストアンサー

外部データを取り込むマクロ

マクロ初心者です。 デスクトップ上にCSVファイルを出力し、それをエクセルに取り込んで、 そのデータを見やすく加工するマクロを作りました。 自分のパソコンだとうまく実行できますが、 社内の他の人のパソコンだとできません。 CSVのデータは、共有のオラクルからデータを出力しているので、同じものです。 実行しようとすると、 「実行時エラー1004  外部データ範囲を更新するためのテキスト ファイルが見つかりません  テキスト ファイルが移動または名前が変更されていないことを確認し、  再度実行してください」 と言われ、 デバッグするとVBAで .Refresh BackgroundQuery:=False が黄色くなっています。 どうすればうまくいきますか? 教えてください。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.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 今のところ、この程度です。なお、これで分からないようでしたら、コードを出してください。

hime73
質問者

お礼

回答ありがとうございます。 すみません、自己解決しました。 外部データの取り込みまでは手動ですることにしました。 お礼が遅くなり申し訳ありませんでした。

その他の回答 (1)

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

C:\Documents and Settings\ユーザー名\デスクトップ のように記述されてる部分があるハズなので、そこを実行環境に合わせて可変させるようにします。 マクロを全部載せてみたらどうでしょう?

hime73
質問者

お礼

回答ありがとうございます。 すみません、自己解決しました。 外部データの取り込みまでは手動ですることにしました。 お礼が遅くなり申し訳ありませんでした。