保存する直前にマクロを自動実行する
保存直前に確認し、「いいえ」で保存を中止します。
実行前に確認
- イベント内からSaveを再実行すると再帰する恐れがあります。この例では保存メソッドを呼びません。
1サンプルコード
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If MsgBox("変更を保存しますか?", vbYesNo) = vbNo Then Cancel = True
End Sub図で見る操作の流れ
イメージ図概念図:保存操作をきっかけに、直前の確認が入ります。
手動:配置
ThisWorkbookにWorkbook_BeforeSaveを貼り付ける
手動:保存操作
セルを変更し、Ctrl+Sを押す
マクロ:確認
「変更を保存しますか?」を表示
分岐
[はい]→元の保存処理を続行/[いいえ]→Cancel = Trueで中止
F5から実行する通常のマクロではありません。イベント自体はSaveを呼び直しません。
コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。
使い方・実行手順を確認する3つの手順で、コードの使い方を確認できます
- 1
練習用のブックをExcelマクロ有効ブック(.xlsm)で保存します。
- 2
Alt+F11でVBEを開きます。左のプロジェクト一覧でこのブックの[Microsoft Excel Objects]→[ThisWorkbook]をダブルクリックし、コードを貼り付けます。
- 3
F5では実行せず、Excelに戻りセルを変更し、Ctrl+Sを押します。確認で「いいえ」を選ぶと保存を中止します。