変数がNull 値かどうかをチェックする( IsNull 関数 )
IsNull 関数の使い方
result = IsNull ( expression )
【引数・戻り値】
- expression ・・・ 調べる変数や式
- result ・・・ 引数 expression が、Null 値を含んでいるかどうかを調べた結果
(ブール型:Null 値を含む場合は、True / そうでなければ、False )。
変数が Null 値 である場合とは、有効なデータが入っていないことを示す値のことです。変数が初期化されていない場合( Empty )、長さ「0」の文字列( Null文字 )の場合とは異なります。
引数 expression が複数の変数で構成されている場合、その中の変数が1つでも Null 値の場合は、式全体が Null 値となります。(※ ただし、「&」演算子を使用した場合は複数の変数があっても Null 値とならない場合もあります。⇒ 「VBA の演算子(文字連結演算子:& 演算子 + 演算子)」を参照)
If ステートメント等を使って、
If value = Null then …
If value <> Null then …
とした場合、いずれの式も False(偽)と評価されてしまいます。これは Null 値を含む式は、式自体が Null 値となり、偽 (False) と評価されるためです。
IsNull 関数の使用例
サンプルVBAソース<その1>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
Sub Sample_isnull01() Dim myVal1, myVal2, myVal3, myVal4, myVal5, myVal6, myVal7 myVal2 = "" myVal3 = 0 myVal4 = Empty myVal5 = 123 myVal6 = "こんばんは" myVal7 = Null 'False Debug.Print IsNull(myVal1) Debug.Print IsNull(myVal2) Debug.Print IsNull(myVal3) Debug.Print IsNull(myVal4) Debug.Print IsNull(myVal5) Debug.Print IsNull(myVal6) 'True Debug.Print IsNull(myVal7) Debug.Print IsNull(myVal1 + myVal7) Debug.Print IsNull(myVal2 + myVal7) Debug.Print IsNull(myVal3 + myVal7) Debug.Print IsNull(myVal4 + myVal7) Debug.Print IsNull(myVal5 + myVal7) Debug.Print IsNull(myVal6 + myVal7) End Sub |
実行結果(その1)
サンプルVBAソース<その2>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
Sub Sample_isnull02() 'Null を含む式は全て偽(False)となるため 'メッセージボックスには、「ccc」と表示されます。 Dim myVal If myVal = Null Then MsgBox "aaa" ElseIf myVal <> Null Then MsgBox "bbb" Else MsgBox "ccc" End If End Sub |
実行結果(その2)
関連記事
-
-
日付時刻:日付時刻から情報取得( DatePart 関数 )
DatePart 関数(日付・時刻の値から情報を取得) 【書式】 result …
-
-
色の設定(ThemeColor プロパティ・TintAndShade プロパティ)
ThemeColor プロパティ・TintAndShade プロパティ テーマカ …
-
-
配列(多次元配列・配列の次元の変更)
多次元配列 【書式】 多次元配列の宣言 <静的配列(固定長配列)> Dim my …
-
-
文字列:文字を指定数並べた文字列を返す(String 関数)
String 関数 【書式】 result = String ( number, …
-
-
カレントフォルダ(CurDir 関数、ChDir ステートメント、ChDrive ステートメント)
カレントフォルダ カレントフォルダとは、ブックを開いたり保存するときに既定で参照 …
-
-
式を評価し、結果(真・偽)に応じた式・値を返す(IIf 関数)
IIf 関数 の使い方 IIf(アイイフ)関数は、式を評価してその結果(真・偽) …
-
-
Erase ステートメント(配列の初期化・動的配列のメモリ解放)
Erase ステートメントの使い方 【書式】 Erase myArray [, …
-
-
文字列:指定した文字の文字コードを取得する(Asc 関数)
Asc 関数 【書式】 result = Asc ( string ) 引数・戻 …
-
-
カレントフォルダの取得・設定(DefaultFilePath プロパティ)
DefaultFilePath プロパティ カレントフォルダとは、ブックを開いた …
-
-
配列(宣言・要素数の変更について)
配列の宣言 【書式】※ 配列の宣言 <Type 型の静的配列(固定長配列)の宣言 …