>>139
Long型の初期値(宣言後に何も入れてない状態)は 0。
これにコード内で明示的に0を入れても元の値のまま。

String型の初期値はvbNullString。(他の言語で言えばNULLポインタ)
これをAPIに渡すのと、Long型の 0を渡すのはまったく同じ。
しかしコード内で "" を入れてしまうと、この値は変化し、
長さゼロの文字列へのポインタとなる。
明示的に初期化したいのであれば vbNullString を入れろ。

API呼び出し以外の場面では、(普通は)両者の違いを意識する必要はない。