ブックを保存する直前にマクロを自動実行する方法
ブックを保存する前に、値入力が必須なセルに値入力されているか確認をして、、未入力の場合はメッセージボックスでセルが未入力であることに注意をだし、セルに値入力をしないと保存ができないようにするような使い方ができます。
ブックの「上書き保存」ボタンをクリックしたときに発生するブックのイベントプロシージャーを作成します。ThisWorkbookモジュールのPrivate Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean,Cancel As Boolean)プロシージャに、マクロを記述します。
ThisWorkbookモジュールの使い方
1.開発タブをクリックする
2.VisualBasicをクリックして開く
3.ThisWorkbookを選択する
4.ダウンリストをクリックする
5.Workbookを選択する
6.右側のダウンリストをクリックする
7.BeforSaveを選択する
8.Private Sub workbook_BeforeSave(ByVal SaveAsUI As Boolean,Cancel As Boolean)
プロシージャが作成されました。
ブックを保存する前にA1セルが入力済みか確認して未入力の場合は保存できないようにするコードと解説
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) If Range("A1") = "" Then MsgBox "A1セルが未入力です。" & vbCrLf & "データを入力してから保存してください。", vbExclamation Cancel = True End If End Sub
ワークブックを保存するときに発生するイベントプロシージャーを作成します。
2行目【If Range(“A1”) = “” Then】
Ifステートメントを使用してA1セルが空白だった場合の条件を定義します。
3行目【MsgBox “A1セルが未入力です。” & vbCrLf & “データを入力してから保存してください。”, vbExclamation】
2行目のIfステートメントが成立した場合、つまり、A1セルに値が入力されていない場合にMsgBox【メッセージボックス】関数を使用してユーザーにメッセージを表示します。
4行目【Cancel = True】
Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)イベントプロシージャーの引数Cancel【キャンセル】にTrueを設定してブックの保存操作を停止します。通常ブックの保存操作を実行するとWorkbook_BeforeClose(Cancel As Boolean)イベントプロシージャーの引数Cancel【キャンセル】にはFalseが渡されますが、Trueを渡すことによりイベントプロシージャーを途中で停止します。
実行結果
上書き保存ボタンをクリックすると
ダイヤログボックスが表示されて注意をし保存をキャンセルします。