Excel VBAでブックを閉じる前に何かしらの処理を自動で実行させる方法の記録です。
ブックを閉じる前に自動で処理するには「BeforeClose」イベントを使います。
下図はExcel2016です。
< スポンサーリンク >
構文
Workbook_BeforeClose(Cancel)
ブックが閉じる前に発生します。ブックが変更された場合、ユーザーに変更内容の保存を要求する前に、このイベントが発生します。
Cancel=必須。イベントが発生すると、Falseが渡されます。イベントプロシージャでこの引数にTrueを設定すると、閉じる操作が停止し、ブックは開いたままとなります。
例
ブックを閉じる前にA1セルに今の日付と時間を入力し、ブックを上書き保存。その後「このブックを閉じます」というメッセージを出してみます。
VBEを開き、「TshiWorkbook」をダブルクリックします。
左側のオブジェクトボックスで「Workbook」を選択し、右側のプロシージャボックスで「BeforeClose」を選択します。
「Private Sub Workbook_Open()」の部分は不要なので消します。
下記のように書き込みます。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
‘A1に今の日付、時間を入力
ThisWorkbook.Worksheets(“Sheet1”).Range(“A1”).Value = Now
‘このブックを上書き保存
ThisWorkbook.Save
‘メッセージ
MsgBox “このブックを閉じます”
End Sub
ブックをマクロ付で保存し、閉じてみます。
A1セルに今の日付と時間を入力、ブックが上書き保存され、「このブックを閉じます」というメッセージが出ました。
こんな記事も書いています