Excel VBA IsNull関数の使い方とNullか判定する方法

VBA関数

今回は数式もしくは文字列に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
タイトルとURLをコピーしました