【ExcelVBA・マクロ】IsEmptyの使い方|変数やセルが空かどうかを判定する方法【コピペOK】

IsEmptyの使い方 ExcelVBA

VBAで処理をしていると、次のようなことはありませんか?

  • 変数に値が入っているか確認したい
  • 空のセルかどうか判定したい
  • 未入力チェックをしたい

このような場合は、IsEmpty関数を使うことで解決できます。
値が「空かどうか」を判定できる、エラー防止にも重要な関数です。

この記事では、IsEmptyの基本から実務で使える活用方法までを初心者向けに分かりやすく解説します。


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

この記事でできること

  • 変数が空かどうか判定できる
  • セルの未入力チェックができる
  • エラーを防ぐ安全なコードが書ける

基本:IsEmpty関数の使い方

基本構文はこちらです。

IsEmpty(値)

例:

MsgBox IsEmpty("")

→ False


戻り値の意味

結果意味
True未初期化(Empty)
False値が入っている

基本例:変数が空かチェックする

Option Explicit

Sub CheckEmpty()

    Dim val As Variant

    If IsEmpty(val) Then
        MsgBox "値が入っていません"
    Else
        MsgBox "値が入っています"
    End If

End Sub

Variant型の未代入変数に対して使用します。


セルの空チェックに使う場合

セルの値にも使用できます。

If IsEmpty(Range("A1").Value) Then
    MsgBox "A1は空です"
End If

よくある未入力チェック

If IsEmpty(Range("A1").Value) Then
    MsgBox "入力してください", vbExclamation
    Exit Sub
End If

入力チェックでよく使うパターンです。


IsEmptyと””(空文字)の違い

ここが非常に重要です。

チェック方法意味
IsEmpty未初期化かどうか
“”空文字かどうか

Dim val As Variant

val = ""

MsgBox IsEmpty(val)   ' False
MsgBox val = ""       ' True

IsEmptyは「値が一度も入っていない」場合のみTrueになります。


注意:String型では使えない

String型は常に空文字で初期化されるため、IsEmptyは使えません。

Dim str As String

MsgBox IsEmpty(str)  ' 常にFalse

→ Stringは “” で判定する必要があります。


実務でよくある使い方

  • 入力チェック
  • 未設定変数の判定
  • 処理分岐
  • エラー防止

特に「安全なコード」を書くために重要です。


よくあるエラーと対処法

① 空なのにFalseになる

空文字(“”)が入っている可能性があります。

② String型で判定できない

StringはIsEmptyではなく “” で判定してください。

③ コードは正しいのにエラーになる

コピー時に全角文字や特殊文字が混ざることがあります。
その場合は該当行を手入力し直すと解決することがあります。


まとめ

  • IsEmptyは「未初期化かどうか」を判定
  • Variant型で使用するのが基本
  • 空文字とは別物
  • 入力チェックやエラー防止に必須

IsEmpty関数を使いこなせるようになると、エラーに強いVBAコードが書けるようになります。
特に入力チェックでは非常に重要なので、しっかり理解しておきましょう。

スポンサーリンク
スポンサーリンク
ExcelVBA
いがぴをフォローする

コメント

タイトルとURLをコピーしました