ブックを閉じる直前にで
・マクロを自動的に実行
できます!
BeforeCloseイベントを利用することで
実現します!
※Before(前に)Close(閉じる)イベントです。
BeforeCloseイベントとは
ブックを閉じる操作をした際に、閉じる直前に発生するイベントです。
BeforeCloseイベントが発生すると、
・Excelが
・Subプロシージャ「Workbook_BeforeClose」を
・自動的に実行
してくれます。
よって
・Subプロシージャ「Workbook_BeforeClose」を作成することで
・ブックを閉じる操作をした際に、閉じる直前にマクロが自動実行される
ようになります。
Subプロシージャ「Workbook_BeforeClose」は
・「ThisWorkbook」モジュール内に作成
する必要があります。
VBAコード
ここでは例として
・デスクトップ配下の「sampl_001.xlsm」の
・「ThisWorkbook」モジュール内のSubプロシージャ「Workbook_BeforeClose」の中に
・VBAコードを記述
します。
記述するVBAコードは
・メッセージ「本当にブックを閉じてよいですか?」を表示
・Noをクリックした場合、閉じるのをキャンセル
・メッセージ「閉じるのをキャンセルしました!」を表示
とします。
自動的に作成されたSubプロシージャ「Workbook_BeforeClose」の中に、VBAコードを記述します。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If MsgBox("本当にブックを閉じてよいですか?", vbYesNo) = vbNo Then
'閉じるのをキャンセル
Cancel = True
MsgBox ("閉じるのをキャンセルしました!")
End If
End Sub
実行結果
ブックを閉じる直前にマクロを自動実行できました。
デスクトップ配下の「sampl_001.xlsm」 を閉じると
・メッセージ「本当にブックを閉じてよいですか?」が表示
されました。
またNoをクリックした場合
・ 閉じるのがキャンセルされ
・メッセージ「閉じるのをキャンセルしました!」が表示
されました。
参考
BeforeCloseイベントの詳細は、公式サイトをご確認ください。