
VBAを使ったマクロでエクセルを編集しているんだけど、
セル内の文字を改行したい…。

なるほど…。
文字を改行した方が見やすくなる場合もありますよね。
では今回は、「VBAでセル内の文字を改行する方法」を
VBAマクロ歴3年の私が、できるだけわかりやすく解説いたします。
VBAでセル内の文字を改行する方法(エクセルマクロ)
「vbLf」を使います。
まずは実行見本をどうぞ。
実行見本
ひとまず全コードと実行結果をご覧ください。
解説は後ほど行います。
全コード
Sub セル内の文字を改行()
Range("A1").Value = "午前:" & vbLf & "午後:"
End Sub
実行結果

解説
※わかりやすさを重視しております。厳密には解釈が異なる場合がありますことをご了承ください。
プロシージャの作成
Sub セル内の文字を改行()
End Sub
プロシージャなど、マクロの基礎は下記記事でわかりやすく解説しております。
コードだけではなく、開発タブの表示からマクロの保存まで知りたい方はご参考ください。
改行した文字をセルに書き込み
Range("A1").Value = "午前:" & vbLf & "午後:"
上記コードのとおり、「vbLf」を入れることによって、文字を改行することができます。
【注意点】
- 「vbLf」の「L」は大文字です
- 「vbLf」は「&」で挟んでください(”文字” & vbLf & “文字”)
マクロが完成したら、実行して動作を確認してみましょう。

エクセル内に作成した自作のボタンを押してマクロを実行させることも可能です。
ボタンの作り方は、下記記事でわかりやすく解説しております。
メッセージボックスやVBAコードを改行する方法
ここからは、「メッセージボックス内の文字」や「VBAコード」を改行する方法を紹介いたします。
メッセージボックス内を改行

Sub メッセージボックス内の文字を改行()
MsgBox "こんにちは" & vbCrLf & "いらっしゃいませ"
End Sub
メッセージボックス内の文字を改行するには、「vbCrLf」を使います。
「vbLf」同様、大文字小文字に気を付けて、「&」で挟んでください。
メッセージボックスを表示させる方法は、下記記事をご参考ください。
VBAコード内を改行
マクロ作成に使うVBAコードですが、1行が長くなって見づらくなることがあるかと思います。
見やすくするために改行したら、エラーが出た…という経験はありませんか?

実はこのVBAコードも改行することができます。
下記が改行を加えたコードです。
Sub セル内の文字を改行()
Range("A1").Value = _
"午前:" & vbLf & "午後:"
End Sub
2行目の右端に「 _」(半角スペース と アンダーバー)が入っています。
これでエラーが出ずにVBAコードを改行することができます。

セルの改行や、メッセージボックスの改行に合わせて、コードを改行することもできます。
Sub セル内の文字を改行()
Range("A1").Value = _
"午前:" & vbLf & _
"午後:"
End Sub
Sub コード内の文字を改行()
MsgBox _
"こんにちは" & vbCrLf & _
"いらっしゃいませ"
End Sub
少し見やすいコードになりましたよね?
コードを改行することで可読性が上がる場合があります。試してみてください。
メッセージ(値)の途中でもコードを改行できます。
Sub コード内の文字を改行()
MsgBox "こんにちは" & vbCrLf & "いらっしゃい" & _
"ませ"
End Sub

メッセージの途中で改行するには、改行コードの前に「&」を付け忘れないようにしましょう。
うまく動作しないときの対処法
エラーが発生する
コンパイルエラー・実行時エラー
コードに問題がある場合が多いです。
「”」や()など、2つセットの記号が片方だけになっていないかなど、コードを再確認しましょう。
セル名を「”」で囲っていない場合でもエラーが発生します。
警告表示

上記の表示が出た場合は、マクロが無効になっています。
エクセルに表示された「コンテンツの有効化」をクリックするか、下記記事を参考にセキュリティ設定を変更してください。
最後に
VBAでセルやメッセージボックス内の文字を改行する方法を解説いたしました。
当ブログでは、VBAマクロやPythonなど、時間を生み出すプログラミング術を公開しております。
この記事がわかりやすいと感じた方は、他の記事も読んでいってください。
最後までお読みいただき、ありがとうございました。がんばってください!