【VBA】すべての開いているブックを一括で閉じる

Excelで複数のブックを開いて作業している場合、1つずつ閉じるのは手間です。
VBAを使えば、開いているすべてのブックを一括で閉じることができます。


1. 保存確認を表示して一括で閉じる

Sub CloseAllWorkbooks()
    Dim wb As Workbook
    For Each wb In Workbooks
        wb.Close '保存確認を表示して閉じる
    Next wb
End Sub

解説:

  • For Each wb In Workbooks … 開いているすべてのブックを順に処理
  • wb.Close … ブックを閉じる。未保存なら確認ダイアログが出る

2. 保存せずに一括で閉じる

Sub CloseAllWithoutSaving()
    Dim wb As Workbook
    For Each wb In Workbooks
        wb.Close SaveChanges:=False '保存せずに閉じる
    Next wb
End Sub

解説:

  • SaveChanges:=False … 変更を保存せず即閉じる
  • データは復元できないので慎重に使う

3. アクティブなブック以外を閉じる

作業中のブックは残して、それ以外を閉じたい場合の例です。

Sub CloseAllExceptActive()
    Dim wb As Workbook
    For Each wb In Workbooks
        If wb.Name <> ActiveWorkbook.Name Then
            wb.Close '保存確認あり
        End If
    Next wb
End Sub

解説:

  • If wb.Name <> ActiveWorkbook.Name で現在のブックを除外
  • 他のすべてのブックを閉じられる

4. 注意点

  • 保存せずに閉じる処理は、データ損失の可能性があるため注意
  • 保存確認ありの処理でも、複数ブックを閉じる場合は何度も確認ダイアログが出る
  • 重要データがある場合は、閉じる前に自動保存処理を組み込むと安全

コメント

タイトルとURLをコピーしました