開いているブックの一覧の取得

上記で、自分のブックの判断方法は理解できたと思います
では、今度は、自ブック以外に開いているワークブックの一覧を取得してみます。

ワークブックの一覧は、Workbooksコレクションオブジェクトから取得します。
複数のワークブックを開いた状態で、下記のマクロを動かしてみて下さい。


Option Explicit

Sub TEST2()
    Dim WBK As Workbook                 ' 各ブック
    Dim strOwnBook As String            ' 自ブック名
    Dim SH As Worksheet                 ' 各シート
    Dim OwnSH As Worksheet              ' 自シート
    Dim GYO As Long                     ' 行
    Dim COL As Long                     ' カラム

    Set WBK = ThisWorkbook              ' 自ブック
    strOwnBook = WBK.Name               ' 自ブック名
    Set OwnSH = WBK.Worksheets(1)       ' 自シート
    If Workbooks.Count <= 1 Then
        MsgBox "2つ以上のブックを開いてから起動させて下さい。", vbExclamation
        Exit Sub
    End If
    OwnSH.Cells(1, 1).Value = "ブック名"
    OwnSH.Cells(1, 2).Value = "シート名→"
    ' ブックの一覧を取得
    GYO = 1
    For Each WBK In Workbooks
        ' 自ブック以外を対象とする
        If WBK.Name <> strOwnBook Then
            ' ブック名のセット
            GYO = GYO + 1
            OwnSH.Cells(GYO, 1).Value = WBK.Name
            ' シートの一覧を取得
            COL = 1
            For Each SH In WBK.Worksheets
                ' シート名のセット
                COL = COL + 1
                OwnSH.Cells(GYO, COL).Value = SH.Name
            Next SH
        End If
    Next WBK
    ' 自ブックをアクティブに
    ThisWorkbook.Activate
End Sub
※ブック内のシートの一覧も取得しています。合わせて参考にして下さい。

動作させると、このような結果になります。

※列幅は、適当に修正しました。


※本ブックのみを開いた状態でマクロを起動すると、一覧に表示させるものがないため、このようにエラーになるようにしています。