Excel VBAでブックを保存する直前に処理を実行する記録です。
ブックを保存する前に処理を実行するには「BeforeSave」イベントを使います。
下図はExcel2016です。
< スポンサーリンク >
「BeforeSave」構文
Workbook_BeforeSave(SaveAsUI, Cancel)
ブックが保存される前に発生します。
SaveAsUI=必須。ブックに保存する必要がある変更が行われたために[名前を付けて保存]ダイアログボックスが表示される場合はTrue。
Cancel=必須。イベントが発生するとFalseが渡されます。イベントプロシージャでこの引数にTrueを設定すると、プロシージャが終了しても保存されません。
「BeforeSave」使用例
ブックを保存する前にB2セルに何も入力されていない場合、「B2のセルに値がありません。保存しますか?」というメッセージを表示し、「はい」なら保存し、「いいえ」なら保存をキャンセルするようにしてみます。
VBEを開き、「TshiWorkbook」をダブルクリックします。
左側のオブジェクトボックスで「Workbook」を選択し、右側のプロシージャボックスで「BeforeSave」を選択します。
「Private Sub Workbook_Open()」の部分は不要なので消します。
下記のように書き込みます。
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
ブックを保存してみます。
「B2のセルに値がありません。保存しますか?」というメッセージが出ました。
こんな風にブックを保存する直前に何かの処理をさせることができます。
こんな記事も書いています