【VBA】文字列の改行コードを扱う方法|vbCrLf, vbNewLine の違いと活用法

目次

✅ 改行コードの種類と違い

定数説明中身備考
vbCrLfキャリッジリターン+ラインフィードChr(13) & Chr(10)一般的なWindows用改行
vbNewLine実行環境に応じた改行(推奨)通常は vbCrLf 相当環境依存で変わる(Winなら同じ)
vbCrキャリッジリターンのみChr(13)単独で使うことは稀
vbLfラインフィードのみChr(10)UnixやMac系で使われる

通常は vbCrLf または vbNewLine を使えばOKです。

🔸 メッセージボックスで複数行表示

MsgBox "1行目" & vbCrLf & "2行目" & vbCrLf & "3行目"

🔸 セルに改行を含むテキストを入力する

Range("A1").Value = "名前:" & vbCrLf & "田中 太郎"
Range("A1").WrapText = True  ' セル内で折り返し表示を有効化

💡 改行は反映されますが、「セルの書式設定」で折り返し指定(WrapText)も忘れずに。

🔸 複数行を結合して1つのセルに書き込む

Dim lines As String
lines = Join(Array("行1", "行2", "行3"), vbNewLine)
Range("A2").Value = lines
Range("A2").WrapText = True

配列と Join を使えば簡潔に複数行テキストを作成できます。

🔸 テキストファイルで改行付きで出力する

Dim fso As Object, ts As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.CreateTextFile("C:\temp\log.txt", True)

ts.WriteLine "処理開始:" & Now
ts.WriteLine "処理中..."
ts.WriteLine "処理終了:" & Now

ts.Close

WriteLine は自動で vbCrLf を付けてくれるので改行コードは不要です。

✅ よくある注意点・落とし穴

  • セル内改行は見た目に反映されない場合がある → WrapText = True を使う
  • vbLfvbCr は単独では文字化けや改行されないケースあり
  • ファイル出力時、改行コードが環境依存になる場合は vbCrLf を指定すると安心

✅ 結論|迷ったら vbCrLf、柔軟性重視なら vbNewLine

シーン推奨コード
メッセージボックスvbCrLf or vbNewLine
セル内改行vbCrLf(+WrapText)
ファイル出力vbCrLf or WriteLine

💡 改行コードは「環境依存」と「表示設定」によって挙動が変わるため、書式設定もセットで使うのが実践的です。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次