Home » エクセルマクロ・Excel VBAの使い方 » VBAの数値型変数がNullかを判定したい??

動作検証バージョン:64bit Windows 10 Pro + 32bit Excel(バージョン2209 ビルド15629.20156 Microsoft Store)

「integer null 判定 vba」
「マクロ long型 null判定」
といった検索キーワードで時折アクセスがあります。

ここで「null」と表現されているのが何なのか不明ですが、変数に値が代入されているかどうかを判定したかったのかな、と想像しています。

[スポンサードリンク]

数値型変数の中身を確認するサンプルプロシージャ

以下のようなSubプロシージャを、私が書かせていただいたVBA関連本で多用しているローカルウィンドウを使って、変数の中身を確認することをおすすめします。

Sub 数値型変数を確認する()
 Dim var As Variant
 Dim num_int As Integer
 Dim num_lng As Long
 Dim num_dbl As Double

 var = 123
 num_int = 123
 num_lng = 123
 num_dbl = 123

 var = Null
 num_int = Null
 num_lng = Null
 num_dbl = Null
End Sub

比較用のVariant型変数と、さまざまな数値型の変数を用意し、

Dim var As Variant
Dim num_int As Integer
Dim num_lng As Long
Dim num_dbl As Double

数値とNullを代入しているだけのSubプロシージャです。

サンプルプロシージャをステップ実行すると

上記のSubプロシージャのステップ実行を開始した直後は下図のような状態になります。

3つの数値型変数の値はいきなり「0」になっています。

VBAの数値型変数の初期値は「0」ということです。

つまりVBAで数値型変数に代入が行われているかを判定するには、「0」かどうかを判定するということになります。

VBAの数値型変数はNullにならない

ステップ実行を進めて、Variant型で宣言した変数varへNullを代入する

var = Null

が実行されると、もちろん変数varの値はNullになります。

しかし、次の

num_int = Null

を実行しようとすると、実行時エラーが発生してしまいます。
VBAで数値型の変数にNullは代入できないためです。

数値型変数には、そもそもNullを代入できないわけですから、IsNull関数を使ったNull判定も無意味です。

最終更新日時:2022-10-28 05:59

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » VBAの数値型変数がNullかを判定したい??

Home » エクセルマクロ・Excel VBAの使い方 » VBAの数値型変数がNullかを判定したい??

「エクセルマクロ・Excel VBAの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.