小池啓仁 ヒロヒト応援ブログ By はてな

小池啓仁(コイケヒロヒト)の動画など。

小池啓仁 ヒロヒト応援ブログ By はてな

VB6でのvbNullString、Null、vbNullChar、vbNull、Empty、空文字列について

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 を返す。


《""》
・いわゆる「長さゼロの文字列」。空の文字列を意味する。
・vbNullString に似ているが、StrPtr("") は 0 とはならない。

http://hpcgi1.nifty.com/MADIA/VBBBS2/wwwlng.cgi?print+200504/05040116.txt

ちなみに、VB.NETでは、空文字列とEmptyはイコールです。
VB6でのEmptyは、バリアント型の変数が値を代入したかいなかを示す特別な値で、0, "", Null値のいずれかとも異なります。