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