VBA IsEmpty 関数

はじめに

Excel VBA マクロの IsEmpty 関数を紹介します。

IsEmpty 関数は、指定したバリアント型 (Variant) の値が空かどうかを判定します。

エラーなどが原因で値を設定できないときにの判定に使用します。

  • 目次
    • 構文
    • 解説
    • 使用例

構文

IsEmpty()
が Empty のときは True を返します。それ以外のときは False を返します。

引数「値」判定したい値を指定します。
戻り値の型ブール型 (Boolean)

解説

Variant 型の初期値は初期化されていないことを意味する Empty という値が設定されています。

引数「値」が Empty なら True を返します。それ以外の値なら False を返します。

クラスなどの参照型の初期値は Nothing という値が設定されています。

引数「値」が Nothing なら False を返します。

正常な処理ができない関数の戻り値として Empty を返すと、関数が正常に行われたかどうかを判定できます。

使用例

Dim v As Variant
Dim b As Boolean

b = IsEmpty(v) ' 何も設定しないと Empty が入っている
Debug.Print(b) ' True

If v = Empty Then
    Debug.Print("Empty") ' Empty
End If

v = ""
b = IsEmpty(v)
Debug.Print(b) ' False

v = Empty
b = IsEmpty(v)
Debug.Print(b) ' True

Set v = Nothing
b = IsEmpty(v)
Debug.Print(b) ' False

Dim i As Integer 
b = IsEmpty(i)
Debug.Print(b) ' False

Dim s As String
b = IsEmpty(s)
Debug.Print(b) ' False

関数が正常に行われたか判定する。

Sub 実行()
    Dim v As Variant
    v = 関数(0) ' 不正

    If IsEmpty(v) Then
        Debug.Print("不正")
    Else
        Debug.Print("正常")
    End If

    v = 関数(1) ' 正常

    If IsEmpty(v) Then
        Debug.Print("不正")
    Else
        Debug.Print("正常")
    End If
End Sub

Function 関数(ByVal i As Integer) As Variant
    If i = 0 Then
        関数 = Empty  ' この行はなくてもいい
        Exit Function ' 不正な引数のため処理を中止
    End If

    関数 = True ' 正常な処理
End Function