VBAで使用できる関数です。
指定した値がEmpty値かどうかをブール型の値(TrueまたはFalse)で返します。
Empty値はVariant型変数が初期化されていない状態を表すもので、Nullとも異なるものです。
使用例
例1
コード
Variant型の変数a~eを宣言してb~eについては値を代入し、それぞれEmpty値かどうかを判定しています。
Sub Func_IsEmpty() 'すべてVariant型 Dim a As Variant, b As Variant, c As Variant, _ d As Variant, e As Variant ' a : 何もしない b = Null ' b : Nullを代入 c = "" ' c : 空文字列を代入 d = 0 ' d : 0を代入 e = "こんにちは" ' e : 適当な文字列を代入 MsgBox "a : " & IsEmpty(a) & vbCrLf & _ "b : " & IsEmpty(b) & vbCrLf & _ "c : " & IsEmpty(c) & vbCrLf & _ "d : " & IsEmpty(d) & vbCrLf & _ "e : " & IsEmpty(e) End Sub
出力
宣言しただけの変数aのみがTrueとなります。
b~eのように何かを代入すると、それがNullや空文字などであってもEmpty値とはみなされません。
例2
コード
配列宣言したVariant型の変数について判定する例です。
Sub Func_IsEmpty() Dim a() As Variant ' a : 動的な配列宣言 Dim b(2) As Variant ' b : 静的な配列宣言 MsgBox "a : " & IsEmpty(a) & vbCrLf & _ "b : " & IsEmpty(b) & vbCrLf & _ "b(0) : " & IsEmpty(b(0)) End Sub
出力
a,bとも何も代入していませんがFalseとなります。
一方でbの要素であるb(0)はTrueとなります。
例3
コード
String型の変数a~cについて試したものです。
Sub Func_IsEmpty() 'すべてString型 Dim a As String, b As String, c As String ' a : 何もしない ' なおStringやLongなどにNullは代入できない b = "" ' b : 空文字列を代入 c = "こんにちは" ' c : 適当な文字列を代入 MsgBox "a : " & IsEmpty(a) & vbCrLf & _ "b : " & IsEmpty(b) & vbCrLf & _ "c : " & IsEmpty(c) & vbCrLf End Sub
出力
いずれもFalseとなります(String型は宣言した時点で値が空文字列となります。Integer型などは0)。
IsEmpty関数がTrueを返すのはVariant型の変数だけです。
書式
IsEmpty(値)
変数名だけでなく文字列や数値を指定することも可能です。このときは当然Falseが返されます。
備考
-