【VBA】開いている全ブックを配列を使って高速に取得する方法
日々の業務で大量のExcelファイルを扱う場合、一つ一つ開いて情報を確認するのは時間がかかります。この記事では、VBAを使用して開いている全てのワークブックを高速に取得し、効率的に処理を行う方法を紹介します。
サンプルコード
VBA
Option Explicit
Sub GetOpenWorkbooks()
Dim wbArray() As Workbook
Dim i As Integer, j As Integer
ReDim wbArray(1 To Application.Workbooks.Count)
' 配列にワークブックを格納
For i = 1 To UBound(wbArray)
Set wbArray(i) = Workbooks.Item(i)
Next i
' ワークブックの情報を表示
For j = LBound(wbArray) To UBound(wbArray)
Debug.Print wbArray(j).Name, wbArray(j).Path
Next j
End Subよくある質問
Q 元に戻せますか?
A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。
Q エラーが出たら?
A.
シート名や列番号が正しいか確認してください。また、ワークブックが開かれていることを確認してください。