Excel VBA 入力が必要なセルが未入力の場合メッセージを出す

スポンサーリンク
スポンサーリンク

ブックを閉じる直前にマクロを自動実行する

ブックを閉じる前に入力が必要なセルに値が入力されているか確認をして、未入力の場合はメッセージボックスで、セルが未入力であることに注意をだして、ブックを閉じるか、閉じないかの選択をしてもらう方法について解説します。

ブックを「✕ボタン」で閉じる操作をしたときに発生するブックのイベントプロシージャーを作成します。ThisWorkbookモジュールの「Private Sub Workbook_BeforeClose(Cancel As Boolean)」プロシージャに、マクロを記述します。

ThisWorkbookモジュールの使い方

1.開発タブをクリックする
2.VisualBasicをクリックして開く



3.ThisWorkbookを選択する



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

コードの解説

1行目【Private Sub Workbook_BeforeClose(Cancel As Boolean)】
ブックを閉じる操作をしたときに発生するイベントプロシージャーを宣言します。


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を渡すことによりイベントプロシージャーを途中で停止します。


実行結果


以上で、入力が必要なセルが未入力の場合メッセージを出す方法の解説を終了します。
ありがとうございました。

スポンサーリンク
スポンサーリンク
スポンサーリンク
スポンサーリンク