ブックを閉じる直前に自動実行する(Workbook_BeforeCloseを使う場合)
ブックを閉じる前に確認し、「いいえ」で閉じる操作を中止します。
実行前に確認
- 保存確認は別途Excelが行います。コードは未保存データを捨てません。
1サンプルコード
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If MsgBox("このブックを閉じますか?", vbYesNo) = vbNo Then Cancel = True
End Sub図で見る操作の流れ
イメージ図コードに沿った概念図です。実際の画面や実行結果ではありません。
手動:配置
イベントコードをこのブックのThisWorkbookへ貼り付ける
手動:閉じる操作
Excelでこのブックを閉じようとする
マクロ:確認
BeforeCloseが発生し、「このブックを閉じますか?」を表示
分岐
「いいえ」→Cancel=Trueで閉じる操作を中止。「はい」→閉じる処理を続ける
F5で直接実行しません。未保存の変更についてはExcelの保存確認が別に行われます。
コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。
使い方・実行手順を確認する3つの手順で、コードの使い方を確認できます
- 1
練習用のブックをExcelマクロ有効ブック(.xlsm)で保存します。
- 2
Alt+F11でVBEを開きます。左のプロジェクト一覧でこのブックの[Microsoft Excel Objects]→[ThisWorkbook]をダブルクリックし、コードを貼り付けます。
- 3
F5では実行せず、Excelに戻り、このブックの閉じるボタンを押します。「いいえ」を選ぶと閉じる操作が取り消されます。