Vba: 開いているすべてのワークブックのリストを取得する方法
VBA でFor Eachループを使用すると、開いているすべての Excel ブックのリストを取得できます。
実際にこれを行う一般的な方法は次のとおりです。
Sub ListAllOpenWorkbooks()
Dim wbName As String
Dim wb As Workbook
'add each open workbook to message box
For Each wb In Application.Workbooks
wbName = wbName & wb.Name & vbCrLf
Next
'display message box with all open workbooks
MsgBox wbName
End Sub
この特定のマクロは、開いているすべての Excel ワークブックのリストを含むメッセージ ボックスを生成します。
次の例は、このマクロを実際に使用する方法を示しています。
例: VBA を使用して、開いているすべてのワークブックのリストを取得する
次の 3 つの Excel ブックが現在開いていると仮定します。
- 野球データ.xlsx
- サッカーデータ.xlsx
- ホッケーデータ.xlsx
VBA を使用して、開いているすべてのブックの名前を一覧表示したいとします。
これを行うには、次のマクロを作成できます。
Sub ListAllOpenWorkbooks()
Dim wbName As String
Dim wb As Workbook
'add each open workbook to message box
For Each wb In Application.Workbooks
wbName = wbName & wb.Name & vbCrLf
Next
'display message box with all open workbooks
MsgBox wbName
End Sub
このマクロを実行すると、次の出力が表示されます。
メッセージ ボックスには、開いている各ワークブックの名前が表示され、それぞれの一意のワークブックが独自の行にリストされます。
For EachループでvbCrLf定数を使用してキャリッジ リターンを挿入し、カーソルを次の行に移動したことに注意してください。
これにより、開いている各ワークブックをメッセージ ボックス内の個別の行に一覧表示できるようになりました。
追加リソース
次のチュートリアルでは、VBA で他の一般的なタスクを実行する方法について説明します。
VBAを使用してファイル名を変更する方法
VBAを使用してフォルダー内のファイルを一覧表示する方法
VBAを使用してフォルダー内のすべてのファイルを開く方法
VBAを使用してファイルが存在するかどうかを確認する方法