VBA 文字の改行




ステートメント構文など
vbCrLf

VBAを使ってエクセル上で、もしくはフォームやメッセージボックスなどで改行する方法です。
エクセル上だとセルの編集中に[Alt+Enter]と同じ動作を再現します。


サンプルコード
Sub kaigyo()
    Cells(1, 1) = "かいぎょう" & vbCrLf & "テスト1"
    Cells(1, 2) = "かいぎょう" & vbLf & "テスト2"
    Cells(1, 3) = "かいぎょう" & vbCr & "テスト3"
    Cells(1, 4) = "かいぎょう" & Chr(10) & "テスト4"
    Cells(1, 5) = "かいぎょう" & Chr(13) & "テスト5"
    Cells(1, 6) = "かいぎょう" & vbNewLine & "テスト6"
    
    Debug.Print "かいぎょう" & vbCrLf & "テスト1"
    Debug.Print "かいぎょう" & vbLf & "テスト2"
    Debug.Print "かいぎょう" & vbCr & "テスト3"
    Debug.Print "かいぎょう" & Chr(10) & "テスト4"
    Debug.Print "かいぎょう" & Chr(13) & "テスト5"
    Debug.Print "かいぎょう" & vbNewLine & "テスト6"

End Sub


実行結果イメージ



解説
vbLf(定義済みの定数)
Chr(10)(実際の値)
この二つは「ラインフィード」の略で原則的には1行下に移る動作をします。

vbCr(定義済みの定数)
Chr(13)(実際の値)
この二つは「キャリッジ・リターン」の略で原則的にカーソルなどを同一行の先頭位置に移動します。

ラインフィードとキャリッジ・リターンを合わせて
vbCrLf (定義済みの定数)
Chr(13)&(Chr(10)実際の値)
で改行を表すのが通常っぽいですが
VBA上であれば
vbNewLine (定義済みの定数)
で思うような動作が得られると思います。


関連・類似ページ
セルの文字列置換Replace