目次
✅ 改行コードの種類と違い
| 定数 | 説明 | 中身 | 備考 |
|---|---|---|---|
| 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.CloseWriteLine は自動で vbCrLf を付けてくれるので改行コードは不要です。
✅ よくある注意点・落とし穴
- セル内改行は見た目に反映されない場合がある →
WrapText = Trueを使う vbLfやvbCrは単独では文字化けや改行されないケースあり- ファイル出力時、改行コードが環境依存になる場合は
vbCrLfを指定すると安心
✅ 結論|迷ったら vbCrLf、柔軟性重視なら vbNewLine
| シーン | 推奨コード |
|---|---|
| メッセージボックス | vbCrLf or vbNewLine |
| セル内改行 | vbCrLf(+WrapText) |
| ファイル出力 | vbCrLf or WriteLine |
💡 改行コードは「環境依存」と「表示設定」によって挙動が変わるため、書式設定もセットで使うのが実践的です。

