大きなプログラムで同様の問題を理解するために作成したサンプルプログラムです。私はa As Variant
とb As Double
を持っています。 a
はNull
に等しくなり、b
はゼロに等しくなります。次に、a
またはb
がNull
かどうかを確認します。数値がnullの場合、ExcelのVBAチェック:期待どおりに動作しない
Sub testNull()
Dim a As Variant
Dim b As Double
a = Null
b = 0
If a = Null Then
MsgBox (a & "null") 'doesn't print
ElseIf a <> Null Then
MsgBox (a & " not null") 'doesn't print
Else
MsgBox (b & " don't know") 'prints
End If
If b = Null Then
MsgBox (b & "null") 'doesn't print
ElseIf b <> Null Then
MsgBox (b & " not null") 'doesn't print
Else
MsgBox (b & " don't know") 'prints
End If
End Sub
結果はExcelが、同時に、Null
するa
またはb
を考慮していませんが、それはNull
になるないにそれらのいずれかを考慮していないことを示しています。
ここで確認する正しい方法は何ですか?問題の原因は何ですか? Null
、ないTrue
またはFalse
を返す(平等テストNull = Null
含む)Null
に対して何かをテスト
'IsNull'関数を使用しますか? – YowE3K