ブックが閉じる前に処理を実行する : Excel VBA

ブックが閉じる前に処理を実行するイベントは、BeforeCloseです。

イベント構文 : Workbook_BeforeClose(Cancel As Boolean)

ここでは、ブックを閉じようとするとメッセージを表示するようにしました。保存済みと未変更か未保存の場合では異なるメッセージを表示させ、未保存の場合は保存することもできます。
未保存の判定は「Me.Saved」で行い、「Me.Save」で保存できます。



Homeに戻る > Excel ブックのTipsへ

Excel実行画面

未変更か保存済みの場合、ブックを閉じようとすると「ブックを閉じますか?」とメッセージが表示されます。「はい」を選択すると閉じます、それ以外では閉じません。
未変更か保存済みの場合

変更し未保存の場合、ブックを閉じようとすると「ブックを保存して、閉じますか?」とメッセージが表示されます。「はい」を選択すると保存し閉じます、「いいえ」を選択すると保存せずに閉じます、「キャンセル」を選択すると閉じません。
変更し未保存の場合

ThisWorkbookオブジェクトのWorkbook_BeforeCloseイベント内に、処理コードを入力します。
Workbook_BeforeCloseイベント

Excel VBAコード

Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim ret As Long
    
    If Me.Saved Then
        ret = MsgBox("ブックを閉じますか?", vbYesNoCancel)
        If ret <> vbYes Then
            Cancel = True
        End If
    Else
        ret = MsgBox("ブックを保存して、閉じますか?", vbYesNoCancel)
        If ret = vbYes Then
            Me.Save
        ElseIf ret = vbNo Then
            ThisWorkbook.Saved = True
        ElseIf ret = vbCancel Then
            Cancel = True
        End If
    End If
End Sub


Homeに戻る > Excel ブックのTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved