関数・メソッド

ブック保存する前に処理実行する【Workbook_BeforeSave】【ExcelVBA】

構文

Workbook_BeforeSave(ByVal SaveAsUIas Boolean , CancelAs Boolean)

SaveAsUI・・・ True=名前を付けて保存/False=上書き保存
Cancel  ・・・・ True=保存キャンセル/False=保存する
ブックを保存する際に実行されるイベントです。
マクロ側で上書き保存をさせない等の対応を取ることが可能です。

Workbook_BeforeSaveイベントのサンプルコード

標準モジュールではなく、Workbookモジュール(Microsoft_Excel_Objects_ThisWorkbook)に記載します。

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    '■上書き保存の場合
    If SaveAsUI = False Then
        MsgBox "上書き保存は出来ません"
        Cancel = True
    End If
    
    '■名前を付けて保存の場合
    If SaveAsUI = True Then
        MsgBox "名前を付けて保存は出来ません"
        Cancel = True
    End If
    
    '■特定セルが空白の場合保存不可(上書き保存、名前を付けて保存どちらも)
    If Range("A1") = "" Then
        MsgBox "セルA1が空白の為、保存できません"
        Cancel = True
    End If
End Sub

 

Workbook_BeforeSaveイベントが実行されない

  • 標準モジュールに記載している。
    →ThisWorkbookモジュールに記載をしましょう。

関連記事

ブックを閉じる時に処理実行する【Workbook_BeforeClose】【auto_close】【ExcelVBA】

コメント

タイトルとURLをコピーしました