【Excel VBA】ブックを閉じる時に処理を実行する(BeforeClose)

はじめに

今回は、ブック(Excel)を閉じた時に処理を自動で処理を実行する方法をご紹介します。
プログラムを実行するには、処理を実行するトリガーが必要ですが、その一つとしてブックを閉じる時に処理を実行する方法を解説します。

この記事を読むメリット
  • ブック(Excel)を閉じた時に処理を自動で実行する方法が分かります。
  • イベントを使用するための手順を画像付きで解説します。
  • コピペで使える実践的なサンプルコードを掲載しています。

基本情報

BeforeCloseイベント

ブックを閉じた時(閉じる直前)に処理を実行するには、Workbook_BeforeCloseイベント(以下「BeforeCloseイベント」という)を使用します。
BeforeCloseイベントは、ThisWorkbookモジュールに記載します。

構文

BeforeCloseイベントの構文を以下に示します。
引数に指定した「Cancel」にTrueを指定するとブックを閉じることをキャンセルすることが出来ます。

構文

Private Sub Workbook_BeforeClose(Cancel As Boolean)
…(ソースコードを入力)
End Sub

BeforeCloseイベントの記述手順

STEP
Workbookイベントを選択する

VBEより、「ThisWorkbook」>「Workbook」を選択する。

Workbookイベントの選択
Workbookイベントの選択
STEP
BeforeCloseイベントを選択する

プルダウンより「BeforeClose」を選択します。
その後、コード欄に「Workbook_BeforeClose」イベントが記載されることを確認します。

BeforeCloseイベントの選択
BeforeCloseイベントの選択

サンプルコード

ブックを閉じる時にメッセージボックスを出力する

サンプルコード
Private Sub Workbook_BeforeClose(Cancel As Boolean)

    If MsgBox("ブックを閉じますか", vbYesNo) = vbNo Then

        Cancel = True
    End If
End Sub

「いいえ」が押下された場合、ブックを閉じる行為をキャンセルします。

最後に

今回は、ブックを閉じる時に処理を実行する方法を解説しました。

本記事が、皆さんのお力になれば幸いです!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

大手外資系コンサルティングファーム勤務。ExcelVBA歴は8年。金融関係のプロジェクトにて約100万レコードを処理するマクロの開発実績あり。ExcelVBAの基礎・応用情報を発信中。

コメント

コメントする

CAPTCHA