xcel VBA ブックを閉じる前に何かしらの処理を実行

Excel VBAでブックを閉じる前に何かしらの処理を自動で実行させる方法の記録です。

ブックを閉じる前に自動で処理するには「BeforeClose」イベントを使います。

下図はExcel2016です。

< スポンサーリンク >





構文

Workbook_BeforeClose(Cancel)

ブックが閉じる前に発生します。ブックが変更された場合、ユーザーに変更内容の保存を要求する前に、このイベントが発生します。

Cancel=必須。イベントが発生すると、Falseが渡されます。イベントプロシージャでこの引数にTrueを設定すると、閉じる操作が停止し、ブックは開いたままとなります。

 

ブックを閉じる前にA1セルに今の日付と時間を入力し、ブックを上書き保存。その後「このブックを閉じます」というメッセージを出してみます。

VBEを開き、「TshiWorkbook」をダブルクリックします。

ExcelVBA閉じるとき自動

 

左側のオブジェクトボックスで「Workbook」を選択し、右側のプロシージャボックスで「BeforeClose」を選択します。

ExcelVBA閉じるとき自動

 

「Private Sub Workbook_Open()」の部分は不要なので消します。

ExcelVBA閉じるとき自動

 

下記のように書き込みます。

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    ‘A1に今の日付、時間を入力
    ThisWorkbook.Worksheets(“Sheet1”).Range(“A1”).Value = Now
    ‘このブックを上書き保存
    ThisWorkbook.Save
    ‘メッセージ
    MsgBox “このブックを閉じます”
End Sub

ExcelVBA閉じるとき自動

 

ブックをマクロ付で保存し、閉じてみます。

ExcelVBA閉じるとき自動

 

A1セルに今の日付と時間を入力、ブックが上書き保存され、「このブックを閉じます」というメッセージが出ました。

ExcelVBA閉じるとき自動

 

< スポンサーリンク >※広告先のお問い合わせは広告主様にお願いします