【VBA】全ての開いているブック名を取得する

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

コメント

タイトルとURLをコピーしました