サイトについて      連絡先   検索

VBA 文字列の改行

はじめに

Excel VBA の 文字列 (String) を改行する方法を紹介します。

Windows の一般的な改行コードは vbCrLf です。

Excel のセル内で改行 (Alt + Enter) すると vbLf で改行されます。

文字列を改行する

vbCrLf 定数が改行文字です。文字列に vbCrLf を結合するとそこで改行します。vbCrLf は vbCr と vbLf の組み合わせです。VBA の文字列以外にもテキストファイルなど Windows の一般的な改行コードが vbCrLf です。


Dim s As String
s = "一行目" & vbCrLf & "二行目"
Debug.Print (s)
' 一行目
' 二行目

s = s & vbCrLf & "三行目"
Debug.Print (s)
' 一行目
' 二行目
' 三行目

セルを改行する

Excel のセル内で改行するには Alt + Enter を入力します。このときの改行コードは vbLf になっています。

この仕様に合わせるため、VBA のコードからセルに改行した文字列を入力するには vbLf を使います。


Dim s As String
s = "一行目" & vbLf & "二行目"
Range("A1").Value = s

' vbCrLf で改行した文字列をセルに入力してはダメ
s = "一行目" & vbCrLf & "二行目"
Range("B1").Value = s
1

vbCrLf で改行された VBA のコードやテキストファイルの文字列をコピーしてセルに貼り付けると、自動で vbCrLf が vbLf になります。

注意点

vbCrLf と vbLf の改行の違いから、ファイルへの出力に注意が必要です。

テキストファイルの改行コードは vbCrLf です。セルの改行コード vbLf を vbCrLf へ「Replace 関数」で置換してから出力します。


Dim s As String
s = Range("A1").Value ' 改行されたセルの値が入っている

Dim 置換後 As String
置換後 = Replace(s, vbLf, vbCrLf)

' 置換後の値をファイルなどへ出力します。

コードを改行する

コードを途中で改行するには _ を末尾に付けます。


Dim s As String
s = "一行目" _
    & vbCrLf _
    & "二行目"

s = "一行目" & vbCrLf & "二行目" ' これと同じコードです。

_ の後ろにはコメントを書けません。

関連ページ