• ベストアンサー

カレントディレクトリにあるExcelファイルを全て開く

Excelのマクロ機能などを利用してカレントディレクトリ(というかマクロを実行するファイルが格納されたフォルダ)内のその他のExcelファイルを全て開かせるにはどうすればよいでしょうか?フォルダ名の指定はせず、実行するファイルを移動しても動作するようにしたいです。

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

  • ベストアンサー
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.3

No.1です。大変失礼しました。 2通り試して「うまくいかなかった方」の内容を投稿してしまっていました。 改めて、   FileName = Dir(ThisWorkbook.Path & "\*.xls") の箇所を、   ChDir (ThisWorkbook.Path)   FileName = Dir("*.xls") に変更してみてください。 多分これでうまくいくと思うのですが…。

teru5000
質問者

お礼

有難うございます。 うまく動作しました!

その他の回答 (2)

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.2

No.1です。 カレントフォルダをオプションで指定されているのですね。 それでは、   FileName = Dir("*.xls") の行を、   FileName = Dir(ThisWorkbook.Path & "\*.xls") に変更してみてください。

teru5000
質問者

お礼

オプションで指定したカレントフォルダ外のフォルダにファイルを移して実行すると、以下のエラーが☆の行に出てしまいます。 実行時エラー1004 XXXXファイル(ファイルAと同じフォルダ内のファイル)が見つかりません。ファイル名およびファイル保存場所が正しいかどうか確認して下さい。 オプションでカレントフォルダを指定しなければうまくはいきますが。オプションで指定していてもうまくいく方法ありませんでしょうか? Sub OpneAllBook() Dim FileName As String Dim OpenedBook As Workbook Dim IsBookOpen As Boolean FileName = Dir(ThisWorkbook.Path & "\*.xls") Do While FileName <> "" IsBookOpen = False For Each OpenedBook In Workbooks If OpenedBook.Name = FileName Then IsBookOpen = True Exit For End If Next If IsBookOpen = False Then      Workbooks.Open (FileName)       ⇒☆ End If FileName = Dir() Loop End Sub

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.1

ちょうど先日そのマクロを作ったところでした。 同じフォルダにある開かれてない*.xlsファイルを全て開きます。 Sub OpenAllBooks()   Dim FileName As String   Dim OpenedBook As Workbook   Dim IsBookOpen As Boolean      FileName = Dir("*.xls")   Do While FileName <> ""     IsBookOpen = False     For Each OpenedBook In Workbooks       If OpenedBook.Name = FileName Then         IsBookOpen = True         Exit For       End If     Next     If IsBookOpen = False Then       Workbooks.Open (FileName)     End If     FileName = Dir()   Loop End Sub

teru5000
質問者

お礼

ファイルAからこの「OpenAllBooks」マクロを実行したときに、ファイルAが現在あるフォルダ(例えばフォルダX)の中にある全てのファイルを開きたいのです。また、ファイルAをフォルダXからフォルダY内に移した場合はフォルダY内のファイルA以外のファイルを開くようにしたいのです。 回答頂いたやり方ですと、ファイルAがどのフォルダにあるかは関係なく「ツール>オプション>カレントフォルダ」で設定したフォルダ内のファイルが開かれてしまいます。 何か解決法はありますでしょうか?