• ベストアンサー

エクセルVBA あるフォルダのファイルを順に開くには

あるフォルダの全てのファイルを 【開く】→<処理>→【閉じる】 を順に繰り返すマクロはどうしたらいいのでしょうか WIN2000Pro EXEL2000 よあろしくお願いします。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

ファイル名を取得するのは Sub test02() Const sPATH = "c:\My Documents\" 'ファイルの保管場所 Dim sFILENAME As String 'ファイル名 sFILENAME = Dir(sPATH & "*.doc") 'ファイルのパスと種類を指定 While sFILENAME <> "" '空文字以外の場合ループ MsgBox "ファイル名 " & sFILENAME sFILENAME = Dir() '引数無しのDir関数を呼び出すと次のファイル名を返す Wend End Sub のようにDir関数で出来そうです。 しかし大事なこと(前提)を質問に書き忘れていませんか。 普通の技量の人が「開く」ことが出来るのは、極く限られたファイル種類のファイルでしょう。 テキストファイル、エクセルファイル、ワードファイル、 mdbファイルなどぐらいではないですか。 一般にはファイルを開くには、それを作ったソフトをエクセルからハンドリング出来ないと駄目ですが、そんなに容易いことではありませんよ。

zonoyan
質問者

お礼

Dir関数をつかってファイル名を使うんですね。 調べて思うようにファイル名を取得できました。 ありがとうございました。

その他の回答 (2)

  • WWolf
  • ベストアンサー率26% (51/192)
回答No.2

DrPh = "c:\" Set fs = CreateObject"Scripting.FileSystemObject") Set f = fs.GetFolder(DrPh) Set fc = f.Files For Each f1 In fc s = f1.Name st = st + s Next MsgBox st End Sub 上記はCドライブのルート配下のファイル名をstに羅列代入しています。参考にどうぞ

zonoyan
質問者

お礼

ありがとうございました

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

 どう開いてどんな処理をしてどう閉じるのかという問題もあるが、とりあえずそのためには「あるフォルダの全てのファイル名」一覧を取得しなければならない。  Windows2000とVBAを使っているのなら、一覧の取得はFileSystemObjectsを使うのが便利だろう。ヘルプもあるし、ネット上にも有用な情報がたくさんあるので検索すると良い。

zonoyan
質問者

お礼

いきなりファイル名を取得できないんですね。 ありがとうございました。

関連するQ&A