【VBA入門】セルが空白かどうかを判定する方法|If文で入力チェックを実装

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

処理の流れ

  1. A1セルの値を変数 a1 に代入
  2. If a1 = "" Then で空白かどうかを判定
  3. 空白だった場合は 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円プラン」なども実施されています。まずはご自身のアカウントでどのようなオファーが表示されるか確認してみてください。

[Kindle Unlimited 読み放題プランをチェックする]

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次