← コード一覧へ戻る
実務イベント

ブックを閉じる直前に自動実行する(Workbook_BeforeCloseを使う場合)

ブックを閉じる前に確認し、「いいえ」で閉じる操作を中止します。

実行前に確認

  • 保存確認は別途Excelが行います。コードは未保存データを捨てません。

1サンプルコード

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If MsgBox("このブックを閉じますか?", vbYesNo) = vbNo Then Cancel = True
End Sub

図で見る操作の流れ

イメージ図

コードに沿った概念図です。実際の画面や実行結果ではありません。

  1. 手動:配置

    イベントコードをこのブックのThisWorkbookへ貼り付ける

  2. 手動:閉じる操作

    Excelでこのブックを閉じようとする

  3. マクロ:確認

    BeforeCloseが発生し、「このブックを閉じますか?」を表示

  4. 分岐

    「いいえ」→Cancel=Trueで閉じる操作を中止。「はい」→閉じる処理を続ける

F5で直接実行しません。未保存の変更についてはExcelの保存確認が別に行われます。

コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。

使い方・実行手順を確認する3つの手順で、コードの使い方を確認できます
  1. 1

    練習用のブックをExcelマクロ有効ブック(.xlsm)で保存します。

  2. 2

    Alt+F11でVBEを開きます。左のプロジェクト一覧でこのブックの[Microsoft Excel Objects]→[ThisWorkbook]をダブルクリックし、コードを貼り付けます。

  3. 3

    F5では実行せず、Excelに戻り、このブックの閉じるボタンを押します。「いいえ」を選ぶと閉じる操作が取り消されます。

使っている機能の公式ドキュメント(Microsoft Learn)