「開いているexcelファイルを全て取得」
という検索が行われていました。
開いているExcelファイルの名前を取得する方法を探している方による検索でしょうか。
開いているファイル名を取得するWordマクロをご紹介しています。
ほとんど同じコードで、Excelでも開いているファイル名・ブック名を取得できます。
オブジェクト変数を使う例
オブジェクト変数を使った、For Each ~ Next文では以下のようなコードです。
Dim wbk As Workbook For Each wbk In Workbooks
Debug.Print wbk.Name
Next
End Sub
上記のマクロを実行すると、イミディエイトウィンドウにファイル名が書き出されます。
For Each ~ Next文で、Workbooksコレクションをなめて、個々のWorkbookオブジェクトのNameプロパティをDebug.Printしています。
Wordマクロとはオブジェクトが違うだけです。
カウンター変数を使う例
オブジェクト変数を使わない場合は以下のようなコードです。Dim i As Long
For i = 1 To Workbooks.Count
Debug.Print Workbooks(i).Name
Next i
End Sub
「1」からWorkbooksの数だけループを回して、カウンター変数・iを使って、個々のWorkbookオブジェクトのNameプロパティをDebug.Printしています。
個人用マクロブックをイミディエイトウィンドウから閉じる方法を記事にしましたが、その中でご紹介している
「for i = 1 to workbooks.count : ? workbooks(i).name : next」
というコードは、このカウンタ変数を使ったマクロを一行にしたものです。
Home » エクセルマクロ・Excel VBAの使い方 » Workbooks・Workbook » 開いている全てのファイル名・ブック名を取得するExcelマクロ