今回は数式もしくは文字列にNullが含まれるかどうか判定する方法をご説明します。
Nullが含まれるかどうか判定するには、「IsNull関数」を使用します。
また、Nullとは何かについても簡単にですがご説明します。
Excelではあまり聞きなれない「Null」ですが、データベースを扱うとよく目にするワードです。
その他の判定する関数については以下の記事をご覧ください。
1.Nullとは
Null(ヌル・ナル)とは一言でいうと「何もない」状態のことです。
空っぽということです。
何もないといっても、空文字列(値が無い文字、長さゼロの文字列)とは違います。
この部分がややこしいです。
「空白」はデータに「空白」が入っています。
Nullは「何も入っていない」状態です。
Null値はバリアント型の変数にのみ格納する事が出来る特殊な値です。
Excelではあまり聞きなれない言葉ですが、データベースのデータを扱う場合に含まれる事が多い値です。
厳密に説明するととても長く、難しくなるのでこんな感じに理解してもらえればと思います。
2.IsNull関数の使い方
Nullが含まれるかどうか判定するには、「IsNull関数」を使用します。
構文は次のように記述します。
IsNull(値)
「値」 は必須で、バリアント型の数式もしくは文字列を指定します。
指定した数式もしくは文字列がNullの場合はTrueを返し、Nullではない場合はFalseを返します。
空文字列やEmptyとも異なり、空文字列やEmptyを指定した場合はFalseとなります。
上記で記載したとおり、バリアント型にのみ格納出来る特集な値です。
データベースからデータを取得した場合などに、取得したデータにNull値が含まれたまま処理をしようとすると、エラーの原因になります。
そのため、事前に判定して0や「””」などに置換する事でエラーを回避する事が出来ます。
3.サンプルコード
Null判定のサンプルコードですが、本来データベースから取得した結果を判定しますが、意図的にNull値を変数に格納して判定させます。
また、Emptyや空白の違いも分かるように判定結果を見ていきたいと思います。
Sub Sample1()
Dim v As Variant
MsgBox IsNull(v) 'False:変数に何も指定しない場合はEmpty
v = "" '空白を代入
MsgBox IsNull(v) 'False:空白はNullにはならない
v = Null 'True:意図的にNullを代入
MsgBox IsNull(v)
End Sub