【エクセルマクロ】空白ならメッセージを表示する:3選

ExcelVBA-空白データ警告-アイキャッチ ExcelVBA

エクセルマクロで、指定範囲に空白がある場合に警告メッセージを表示する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秒で終わらせます」へ
毎日の業務を瞬時に終わらせるしくみを解説