vbCrLf の Cr はキャリッジリターン(カーソルを先頭に) 、Lfは ラインフィード(次の行へ)です。
状況によっては vbcr のみ vblf のみでも改行できますが
どの場面でも対応できるように
vbCrLf を使用する事が一般的となっています。
windowsのいろいろな場面で Cr は改行として認識されます。
そこで繰り返すをしたい時は
string(3,vbcr)
これで3回繰り返しです、もちろん3を6に変えれば6回改行です。
vbcrだと改行にならない時、セルに値を入れる時等は
string(3,vblf)
を使用します、なぜ
string(3,vbcrlf)
と書かないかというとstringは最初の一文字しか繰り返しません
文字で表現すると
String(5,"ウニペグ") だと
ウウウウウ と、なるのです!
なぜ一文字の繰り返しでvbcrかと言うと
vbcrlfの実体は数字です 組み込み定数というやつです。
vbCrLf = Chr(13) + Chr(10)
vbCr = Chr(13)
となります13を繰り返してるのです。
なので1文字しか繰り返さないstringだと引数にvbcr、もしくはvblf
となるのですが、
string(3,vbcrlf)
こう書いてもコンパイルエラーにはならずvbcrが繰り返します。
なので状況によって(MsgBOXへの表示等)では正常に機能しますが
セルに値を代入する場合には反応しません。
用途によって string(3,vbcr) string(3,vblf) を使い分けてください。
ちなみに
MsgBox "a" & Chr(13) & "w"
これも改行されます。
まだまだ補足したいですが次の機会に・・・・