こちらの記事ではExcel VBAでの改行方法についてご紹介しています。
改行をするといっても、ソースコードの改行と出力する文字列の改行の2通りありますので、それぞれのやり方をサンプルを交えて解説いたします。
出力する文字列を改行するには、改行コードを文字列に連結して出力するようにします。
実行環境により、利用する改行コードは下記の様に変わってきます。
利用環境 | 改行コード定数 |
Windows環境 | vbCrLf |
Linux環境 | vbLf |
MacOS環境 | vbCr |
実行OSにあわせて変化 | vbNewLine |
VBAを使ってExcelシートのセルに出力する文字列を改行する
以下、実際にVBAで出力する文字列に対して改行を行ったサンプル例です。
ここでは、それぞれの改行コードを実際に、エクセル上のセルに文字列を出力して改行をしています。
実行環境は、Windows環境下になります。
Private Sub CommandButton1_Click()
Dim result As Long
Dim ws As Worksheet
Set ws = ThisWorkbook.ActiveSheet
ws.Cells(1, 1).Value = "出力文字列を改行します。" & vbCrLf & "1:vbCrLfを使う。"
ws.Cells(2, 1).Value = "出力文字列を改行します。" & vbCr & "2:vbCrを使う。"
ws.Cells(3, 1).Value = "出力文字列を改行します。" & vbLf & "3:vbLfを使う。"
ws.Cells(4, 1).Value = "出力文字列を改行します。" & vbNewLine & "4:vbNewLineを使う。"
End Sub
実行結果は下記の様になります。
Windows環境下の為2番の vbCr のケースでは改行されない結果となりました。
VBAを使ってメッセージボックスに出力する文字列を改行する
では、セルではなくメッセージボックスに出力する場合はどうなるのでしょうか?
Private Sub CommandButton1_Click()
MsgBox ("出力文字列を改行します。" _
& vbCrLf & "1:vbCrLfを使う" _
& vbCr & "2:vbCrを使う" _
& vbLf & "3:vbLfを使う" _
& vbNewLine & "4:vbNewLineを使う")
End Sub
出力結果は下記の様に全て改行されて出力される結果となりました。
この様にどのような出力形式を取るかによって、結果が異なる為、私はよっぽどの理由がない限り環境によって柔軟に対応してくれる vbNewLine を利用するようにしています。
VBAソースコードの改行
次にVBAのソースコード自体改行するケースです。
関数によっては引数がいくつもあり、やたらと1行のコードが長くなってしまい、可読性が落ちてしまう事が多々あります。
このような場合に、ソースコードをいつでもどこでも改行できる方法があります。
文字列の出力より簡単で、ソースコードの改行は半角スペースとアンダーバー 『 _』 だけでできます。
Private Sub CommandButton1_Click()
MsgBox "ソースコードの改行をします。", _
vbOKOnly, _
"ソースコードの改行"
End Sub
上記の様に、簡単に改行することが出来るため、コードが長くなりがちなSQL文などの場合は特に重宝します。
まとめ
出力形式によって改行されるケースとされないケースがある。
VBAを使って出力する文字列の改行を行う場合は、vbNewLine を使っておけばとりあえず問題ない。