VB6でのvbNullString、Null、vbNullChar、vbNull、Empty、空文字列について
《vbNullString》
・初期化されていない文字列を示す。いわゆる null pointer。
・可変長文字列型、すなわちString型の初期値。
・StrPtr(vbNullString) は 0 を返す。
・VarType(vbNullString) は vbString を返す。
・CBool("" = vbNullString) は True となる。
・主にAPI呼び出し時に、null pointer を渡す意図などで用いられる。
《Null》
・主にデータベースで、未定義値や不明な値の意味などで使われる。
・バリアント型にのみ格納可能。(String型などには格納できない)
・VarType(Null) は vbNull を返す。
・Null に対して演算を行うと、やはり Null のままになる。
ついでに以下も。
《vbNullChar》
・「ASCIIコード 0」な 1 文字を表す定数。ChrW(0) と同じ値。
・AscW(vbNullChar) は 0 を返す。
・VarType(vbNullChar) は vbString を返す。
《vbNull》
・VbVarType列挙型の値の一つ。値としては長整数型の 1 に等しい。
・VarType関数の戻り値として使われる。
《Empty》
・バリアント型の初期値。空のデータを意味する。
・バリアント型にのみ格納可能。
・数値型や文字列型に格納すると、0または空文字列に変化する。
・VarType(Empty) は vbEmpty を返す。
・CBool("" = Empty) は True を返す。
・CBool(0 = Empty) は True を返す。
《""》
http://hpcgi1.nifty.com/MADIA/VBBBS2/wwwlng.cgi?print+200504/05040116.txt
・いわゆる「長さゼロの文字列」。空の文字列を意味する。
・vbNullString に似ているが、StrPtr("") は 0 とはならない。
ちなみに、VB.NETでは、空文字列とEmptyはイコールです。
VB6でのEmptyは、バリアント型の変数が値を代入したかいなかを示す特別な値で、0, "", Null値のいずれかとも異なります。