サイトについて      連絡先   検索

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
  • 目次
    • 構文
    • 解説
    • 使用例