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