📘 Excel逆引き事典

【VBA】開いている全ブックを配列に高速格納する方法

日々の業務で大量のエクセルファイルを扱う際、一つ一つ開いて作業するのは効率が悪いですよね?この記事では、開いている全てのワークブックを高速に配列に格納する方法を紹介します。これにより、複数のファイル間でのデータ処理が劇的に早くなります。

サンプルコード

VBA
Option Explicit
Sub CollectAllOpenWorkbooksToArray()
    Dim wbArray() As Workbook
    Dim i As Integer, wbCount As Integer
    
    Application.ScreenUpdating = False '画面更新を停止
    wbCount = Workbooks.Count '開いているワークブックの数をカウント
    ReDim wbArray(1 To wbCount) '配列を初期化
    
    For i = 1 To wbCount
        Set wbArray(i) = Workbooks(i) '各ワークブックを配列に格納
    Next i
    
    Application.ScreenUpdating = True '画面更新を再開
End Sub

よくある質問

Q 元に戻せますか?

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

Q エラーが出たら?

A.
開いているワークブックの数やファイル名が正しいか確認してください。また、配列の初期化方法も適切に行っているか確認してみてください。