ExcelでVBAを使っていると、
「セルが空白のまま実行されると困る…」
「必須項目なのに入力されていない…」
といった場面に遭遇することがあります。
今回は、VBAでセルが空白かどうかを判定して、空白の場合に警告を出す方法をご紹介いたします。
基本構文:If ~ Then で空白をチェック
VBAでは、以下のように記述することでセルが空白かどうかを判定できます。
If 値 = "" Then
' 空白だったときの処理
End If
ここで "" は**空の文字列(= 空白)**を意味します。
実用コード:セルA1が空白なら警告を表示して中断する
以下は、「Sheet1」のA1セルが空白だったら、メッセージを表示して処理を止めるという例です。
Private Sub blank_judge()
Dim a1 As String
' A1セルの値を取得
a1 = ThisWorkbook.Worksheets("Sheet1").Cells(1, 1).Value
' A1が空白の場合、警告を出して終了
If a1 = "" Then
MsgBox "A1を記入してください。", vbExclamation
Exit Sub
End If
' 通常の処理をここに続けて記述
MsgBox "A1は入力されています。"
End Sub
処理の流れ
- A1セルの値を変数
a1に代入 If a1 = "" Thenで空白かどうかを判定- 空白だった場合は
MsgBoxでメッセージを表示し、Exit Subで処理を中断
補足:空白の判定は2通りある
空白かどうかを判定するには、以下のような方法もあります。
方法1:If A1 = "" Then
最もシンプルで直感的な方法です。文字列として空を比較します。
方法2:If IsEmpty(A1) Then
未入力セルを対象にした判定で、数式が入っているセルなどには使えないことがあります。
通常は = "" の方が扱いやすいです。
応用:複数セルの空白チェック
以下のようにすれば、複数のセルを一括で空白チェックすることも可能です。
Dim rng As Range
For Each rng In Range("A1:A5")
If rng.Value = "" Then
MsgBox rng.Address & " が空白です。", vbExclamation
Exit Sub
End If
Next rng
まとめ
VBAでセルが空白かどうかを判定するには、If 値 = "" Then を使うのが基本です。
- シンプルな構文で扱いやすい
- 空白チェック+メッセージ表示で、入力漏れの防止に活用できる
Exit Subで処理中断すれば、安全なマクロ制御が可能
入力チェック処理は、業務の信頼性を高める第一歩ですので、ぜひ取り入れてみてください。
技術書の購入コストを抑えてスキルアップするなら

ここまで読んでいただきありがとうございます。最後に宣伝をさせてください。
プログラミングの技術書や参考書は、1冊3,000円〜5,000円するものも多く、出費がかさみがちです。Kindle Unlimitedであれば、月額980円で500万冊以上の書籍が読み放題となります。
気になる言語の入門書から、アルゴリズム、基本設計の専門書まで、手元のスマホやPCですぐに参照可能です。現在は「30日間の無料体験」や、対象者限定の「3か月499円プラン」なども実施されています。まずはご自身のアカウントでどのようなオファーが表示されるか確認してみてください。
