ん、?
コンパイラはコンパイル時にしか仕事しないはずだよ。
コンパイラだからねw

>byref Stringを ByVal StringBufferでにしたほうが良いという理由はどういった事でしょうか?
StringBuilderね。
上の方で誰か既に書いてるみたいだけど、参照型をByrefで渡すってことは
Cで言えばポインタ変数のアドレスを渡すってことになるから。

ちなみに参照型をByValで渡すことはポインタ変数の値(つまりアドレス)を
渡すことになる。(Stringの場合は例えばUTF8をANSIに変換したりする必要があるから
完全に正確な表現じゃないと思うけど。)
VB初心者さんが欲しいのはこっちなんじゃ?