>>151
検証してやったよ。 APIのlstrlenを使って。

Dim s As String * 3,ss As String * 3

MsgBox lstrlen(s) :MsgBox lstrlen(ss)
この時点で変数sが初期化されていないので結果は0。
つまり、宣言時は何も確保されていない。

次に変数を初期化してバイト数を計測
s = vbNullString: ss = vbNullString
MsgBox lstrlen(s): MsgBox lstrlen(ss)

結果は共に3バイトを返す。よって、あの宣言は3バイトという意味。
最後に片方にVB規定のユニコードで全角と半角で3文字代入

s = "あいう": ss = "123"
MsgBox lstrlen(s): MsgBox lstrlen(ss)

結果はsが6バイト。ssが3バイト。
VBは変数に代入時に無言でコンバート処理を行うか、メモリ領域を拡張しているか
しているんじゃないの。

>>155
16進数と明示的に宣言している。