【VBA】開いている全ブックを配列を使って高速に削除する方法
日々大量のExcelファイルを扱う実務では、開いているワークブックの一括削除が非常に便利です。しかし手作業で行うと時間がかかります。この記事では、VBAを使って開いている全てのワークブックを高速に一括削除する方法を紹介します。
サンプルコード
VBA
Option Explicit
Sub DeleteAllOpenBooks()
Dim wb As Workbook, wbArray() As Variant
Application.ScreenUpdating = False '画面更新停止
Application.DisplayAlerts = False '警告メッセージ非表示
ReDim wbArray(1 To Workbooks.Count)
For i = 1 To Workbooks.Count
wbArray(i) = Workbooks(i).Name
Next i
For i = LBound(wbArray) To UBound(wbArray)
Workbooks(wbArray(i)).Close SaveChanges:=False '開いているワークブックを閉じる
Next i
Application.DisplayAlerts = True '警告メッセージ再表示
Application.ScreenUpdating = True '画面更新再開
End Subよくある質問
Q 元に戻せますか?
A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。
Q エラーが出たら?
A.
シート名や列番号が正しいか確認してください。