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

VBA 文字列を改行する

はじめに

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

VbCrLf を結合すると改行できます。vbLf を結合するとセル内の改行になります。

コードを改行する方法も紹介します。

  • 目次
    • 文字列を改行する
    • コードを改行する

文字列を改行する

vbCrLf定数が改行文字です。文字列に結合すると、そこで改行します。


Dim s As String

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

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

vbCrLf はvbCrvbLf定数を結合したものです。テキストファイルにも使われる Windows の一般的な改行コードが vbCrLf です。

セル内の改行

セル内でAlt + Enterを入力したときの改行コードは vbLf です。

そのため VBA からコードでセルに改行した文字列を入力するには vbLf を使います。


Dim s As String

s = "一行目" & vbLf & "二行目"
Range("A1").Value = s
1

vbCrLf で改行されたテキストファイルの文字列などをコピーしてセルに貼り付けると、自動で vbCrLf が vbLf になります。コードから VbCrLf を入力したときはそのままになるので、後で問題が発生する可能性があります。

注意点

セル内の改行の仕様により、セルの値をテキストファイルなどに出力するときは注意が必要です。

テキストファイルの改行コードは vbCrLf です。そのためセルの改行コードを vbLf から vbCrLf に置換してから出力します。


Dim s As String

s = Range("A1").Value ' vbLf または vbCrLfで改行された値が入っている

Dim 置換後 As String
置換後 = Replace(s, vbLf, vbCrLf)        ' vbLf を vbCrLf に置換する
置換後 = Replace(s, vbCr & vbCr, vbCrLf) ' vbCrCr を vbCrLf に置換する

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

2 回目の置換でvbCr & vbCrvbCrLfにしているのは、1 回目の置換で vbCrLf が置換されると vbCrCrLf になるため、これを vbCrLf にしています。

コードを改行する

VBA のコードを改行したい位置で _を入力します。


Dim s As String

s = "一行目" _
    & vbCrLf _
    & "二行目"

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

_ の後ろにはコメントも含めて何も入力できません。

横スクロールが必要なくらい長くなりすぎているときは、改行すると見やすくなります。

  • 目次
    • 文字列を改行する
    • コードを改行する