質問: variant型で宣言してるのにemptyになる エクセルvba2003について質問です。 sub aaa1() dim a as variant debug.print typename(a) end sub を実行してイミディエイトウインドウで確認すると emptyが返ってきます。 variantが返ってこない理由は何でしょうか? また、変数の方の宣言をしない場合は variant型になるはずなのに sub aaa2() dim a debug.print typename(a) end sub を実行すると、同じくemptyが返ってきます。 variantが返らない理由を教えてください。よろしくお願いします。
回答: バリアント型は、値が代入されるまではemptyとする仕様だからです。 emptyは特殊な値で0、長さ0の文字列(””)、null値と異なります。 バリアント型の変数を式の中で使うとき、数値演算を行う式では数値の0、 文字列の連結などを行う式では長さ0の文字列になりますので一度値を 代入して確認して下さい。 因みにバリアント型の変数をempty値に戻すには、emptyを代入します。