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)も含まれる場合があるので注意
コメント