エクセルマクロで、指定範囲に空白がある場合に警告メッセージを表示するVBAコードをご紹介します。
1つのセル、または複数セルの空白を検知します。
このページのマクロコードは、コピペで使えます。
ぜひ、お試しください。
空白ならメッセージ表示
以下のExcelVBAを実行すると、空白時にメッセージボックスを表示します。
Sub 指定範囲に空欄がある場合警告表示()
Dim sel As Range
Set sel = Range("A1:C20")
If Application.CountBlank(sel) Then
MsgBox "空白があります"
Exit Sub
End If
End Sub
マクロ実行後
指定範囲内に空白がある場合、メッセージボックスを表示します。
空白がない場合は、メッセージボックスは表示しません。
空白ならメッセージ表示(該当行を表示)
以下のExcelVBAを実行すると、範囲に未入力がある場合に警告を表示します。
Sub 空欄を判定しメッセージ表示()
Dim sel As Range
Dim LastRow As Long
Dim i As Long
Dim Buf As String
'A列の最終行を取得
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
'1行目~最終行までループ
For i = 1 To LastRow
'2行目か3行目が空白だったら
If Cells(i, 2) = "" Or Cells(i, 3) = "" Then
'「Buf」にA列の値と行番号を格納
Buf = Buf & Cells(i, 1) & " " & i & "行目" & vbCrLf
End If
Next i
If Buf <> "" Then
MsgBox "空白があります" & vbCrLf & vbCrLf & Buf
End If
End Sub
マクロ実行後
B列かC列に空白がある場合に、
A列の値と、該当行をメッセージボックスに表示します。
空白がない場合は、メッセージボックスは表示しません。
空白ならメッセージ表示(ブックを閉じるときに警告)
以下のExcelVBAを実行すると、入力が必要なセルが空白の場合メッセージを出します。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim sel As Range
Set sel = Range("A1:C20")
If Application.CountBlank(sel) Then
MsgBox "空白があります"
Cancel = True
Exit Sub
End If
End Sub
コードを入力する場所
動作
指定範囲に空欄がある状態で、ブックを閉じようとすると、
「空白があります」とメッセージボックスが表示され、ブックを閉じることはできません。
メッセージボックスの「OK」をクリックすると、Excelの編集画面に戻ります。
指定範囲に空欄がなければ、メッセージボックスは表示しません。
この記事がお役に立ちますと幸いです。
【エクセルマクロ】シートの追加・削除を自動化:超便利12選
...
「たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】」
「5時間かかる作業が3時間でできます」ではなく「1秒で終わらせます」へ
毎日の業務を瞬時に終わらせるしくみを解説
リンク