ブックを閉じる直前にマクロを自動実行する
ブックを閉じる前に入力が必要なセルに値が入力されているか確認をして、未入力の場合はメッセージボックスで、セルが未入力であることに注意をだして、ブックを閉じるか、閉じないかの選択をしてもらう方法について解説します。
ブックを「✕ボタン」で閉じる操作をしたときに発生するブックのイベントプロシージャーを作成します。ThisWorkbookモジュールの「Private Sub Workbook_BeforeClose(Cancel As Boolean)」プロシージャに、マクロを記述します。
ThisWorkbookモジュールの使い方
1.開発タブをクリックする
2.VisualBasicをクリックして開く
4.ダウンリストをクリックする
5.Workbookを選択する
6.右側のダウンリストをクリックする
7.BeforCloseを選択する
8.Private Sub workbook_BeforeClose(Cancel As Boolean)
プロシージャが作成されました。
ブックを閉じる前にA1セルが入力済みか確認して未入力の場合は注意を出すコードと解説
Private Sub Workbook_BeforeClose(Cancel As Boolean) If Range("A1") = "" Then If MsgBox("A1セルが未入力です。"& vbCrLf &"ブックを閉じていいですか?",vbYesNo+ vbExclamation) = vbNo Then Cancel = True End If End If End Sub
ブックを閉じる操作をしたときに発生するイベントプロシージャーを宣言します。
2行目【If Range(“A1”) = “” Then】
IfステートメントでA1セルが空白だったときを定義します。
3行目
【If MsgBox(“A1セルが未入力です。”& vbCrLf &”ブックを閉じていいですか?”,vbYesNo+ vbExclamation) = vbNo Then】
2行目の条件が成立したとき、つまり、A1セルが未入力だったときにMsgBox【メッセージボックス】関数を使用してユーザーにメッセージをだします。ボタンの種類とアイコンの種類を表す引数Buttons【ボタンズ】には「はい」と「いいえ」を表す定数と注意アイコンを表す定数を指定します。MsgBox関数の引数はカッコ()で囲みユーザーが押したボタンを戻り値として受け取り、比較演算子の「=」を使用してvbNOつまり「いいえ」ボタンが押されたときをIfステートメントで定義します。
4行目【Cancel = True】
3行目の条件が成立したとき、つまり、MsgBox関数で「いいえ」ボタンがおされたときにWorkbook_BeforeClose(Cancel As Boolean)イベントプロシージャーの引数Cancel【キャンセル】にTrueを設定してブックを閉じる操作を停止します。通常ブックを閉じる操作を実行するとWorkbook_BeforeClose(Cancel As Boolean)イベントプロシージャーの引数Cancel【キャンセル】にはFalseが渡されますが、Trueを渡すことによりイベントプロシージャーを途中で停止します。