Excel VBA ブックを保存する前に処理をする-BeforeSave

Excel VBAでブックを保存する直前に処理を実行する記録です。

ブックを保存する前に処理を実行するには「BeforeSave」イベントを使います。

下図はExcel2016です。

ExcelVBA保存前

 

< スポンサーリンク >

 

構文

Workbook_BeforeSave(SaveAsUI, Cancel)

ブックが保存される前に発生します。

SaveAsUI=必須。ブックに保存する必要がある変更が行われたために[名前を付けて保存]ダイアログボックスが表示される場合はTrue。

Cancel=必須。イベントが発生するとFalseが渡されます。イベントプロシージャでこの引数にTrueを設定すると、プロシージャが終了しても保存されません。

 

ブックを保存する前にB2セルに何も入力されていない場合、保存するかどうかをメッセージで表示してみます。

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

ExcelVBA保存前

 

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

ExcelVBA保存前

 

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

ExcelVBA保存前

 

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

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim a As Variant
    If ActiveSheet.Range("B2").Value = "" Then
        a = MsgBox("B2のセルに値がありません。保存しますか?", vbYesNo)
        If a = vbNo Then
            Cancel = True
        End If
    End If
End Sub

ExcelVBA保存前

 

ブックを保存してみます。

ExcelVBA保存前

 

「B2のセルに値がありません。保存しますか?」というメッセージが出ました。

ExcelVBA保存前

 

< スポンサーリンク >



サブコンテンツ

このページの先頭へ