📘 Excel逆引き事典

【VBA】開いている全ブックをエラー処理付きで配列に格納する方法

日々の業務で、大量のExcelファイルを扱うことは珍しくありません。しかし、これらのファイルを一つ一つ手作業で管理するのは効率が悪く、ミスも増えます。この記事では、開いているすべてのワークブックを配列に格納するVBAマクロを作成し、業務を効率化します。

サンプルコード

VBA
Option Explicit
Sub GetOpenWorkbooksToArray()
    Dim wbArray() As Variant
    ReDim wbArray(0 To Workbooks.Count - 1)
    Dim i As Integer, j As Integer
    j = 0
    On Error Resume Next
    For Each wb In Workbooks
        If Not wb.Name Like "*Book*" Then '開いているブックで、'Book1', 'Book2'などのデフォルト名のワークブックは除外します。
            wbArray(j) = wb.Name
            j = j + 1
        End If
    Next wb
    ReDim Preserve wbArray(0 To j - 1)
    On Error GoTo 0
End Sub

よくある質問

Q 元に戻せますか?

A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。

Q エラーが出たら?

A.
コード内のエラーハンドリング部分(On Error Resume Next)により、一般的なエラーは無視されます。それでも問題が続く場合は、具体的なエラー内容を確認し、対応してください。