Excelを複数開いて作業していると、どのブックが開いているのかを確認したくなることがあります。
VBAを使えば、現在開いている全ブックの名前を一覧表示できます。
1. 開いているブック名をメッセージボックスで表示
Sub ListOpenWorkbookNames()
Dim wb As Workbook
Dim msg As String
'開いている全てのブックを順に処理
For Each wb In Application.Workbooks
msg = msg & wb.Name & vbCrLf
Next wb
'結果を表示
MsgBox "開いているブック名一覧:" & vbCrLf & msg
End Sub
解説:
Application.Workbooks
… 現在開いている全ブックのコレクションwb.Name
… ブックのファイル名(拡張子付き)vbCrLf
… 改行コード
2. ワークシートに一覧として書き出す
Sub WriteOpenWorkbookNamesToSheet()
Dim wb As Workbook
Dim ws As Worksheet
Dim rowNum As Long
'出力先シートを作成
Set ws = ThisWorkbook.Sheets.Add
ws.Name = "ブック一覧"
rowNum = 1
For Each wb In Application.Workbooks
ws.Cells(rowNum, 1).Value = wb.Name
rowNum = rowNum + 1
Next wb
End Sub
解説:
ThisWorkbook.Sheets.Add
… 新しいシートを追加ws.Cells(rowNum, 1).Value = wb.Name
… 行ごとにブック名を書き込む- この方法なら、一覧をExcel内で確認・加工できる
3. 注意点
ThisWorkbook
は実行しているVBAコードが入っているブックを指しますwb.Name
はファイル名のみ、wb.FullName
を使うとフルパスが取得可能- 開いている全ブックには、個人用マクロブック(
PERSONAL.XLSB
)も含まれる場合があるので注意
コメント