オブジェクトがNothingか判別する
定義したオブジェクト型の変数に何も代入していない状態では
ウォッチで調べると変数の値はNothingになります。
変数objがNothingかどうかを判別するために
If文を使って条件判断します。
そこで次のコードを実行してみます。
|
Sub macro20100513a() End Sub |
If文の条件式 obj = "Nothing"は
Object型の変数objと文字列Nothingを比較しようとして
エラーになります。
次のコードはエラーが起こるでしょうか?
実行してみます。
|
Sub macro20100513b() End Sub |
Nothingはオブジェクトです。
=演算子ではオブジェクト同士の比較はできません。
2つのオブジェクトの比較は
Is演算子を使用します。
先ほどのコードは次のようにすると
エラーが発生しないで実行できます。
|
Sub macro20100513c() End Sub |
次のコードは
オブジェクトがNothingではない場合に
If文の中を実行します。
|
Sub macro20100513d() Dim obj As Object End Sub |
上記コードのIf文の条件式
Not (obj Is Nothing)は
変数objがNothingでない場合にTrueになります。
Nothingの判別は
TypeName関数を使用することでも可能です。
TypeName関数は
オブジェクトの情報を文字列で返します。
|
Sub macro20100513e() End Sub |
Microsoftサイト参考Web「比較演算子」
| 固定リンク
この記事へのコメントは終了しました。



コメント