【ExcelVBA・マクロ】MsgBoxで改行する方法|vbCrLf・vbNewLineの違いも解説【コピペOK】

MsgBoxで改行する方法 ExcelVBA

VBAでメッセージボックス(MsgBox)を使っていると、次のように思ったことはありませんか?

  • 文章を改行して見やすくしたい
  • 1行だと長すぎて読みにくい
  • 複数行で説明を表示したい

このような場合は、改行コードを使うことでMsgBox内で改行できます。
非常に簡単ですが、初心者がつまずきやすいポイントでもあります。


スポンサーリンク
スポンサーリンク

この記事でできること

  • MsgBoxで改行する方法が分かる
  • vbCrLf・vbNewLineの違いが分かる
  • 複数行メッセージを作れる
  • 実務で使える書き方が分かる

基本:MsgBoxで改行する方法

MsgBoxで改行するには、vbCrLf を使います。

Option Explicit

Sub MsgBoxLineBreak()

    MsgBox "1行目" & vbCrLf & "2行目"

End Sub

これで、メッセージボックスが次のように表示されます。

1行目
2行目

改行コードの種類

VBAにはいくつか改行コードがあります。

コード意味
vbCrLf改行(最も一般的・おすすめ)
vbNewLine環境に依存した改行
vbCrキャリッジリターンのみ
vbLfラインフィードのみ

基本的にはvbCrLfを使えばOKです。


複数行のメッセージを表示する

複数行にする場合は、改行をつなげて書きます。

Option Explicit

Sub MsgBoxMultiLine()

    MsgBox "処理が完了しました。" & vbCrLf & _
           "結果を確認してください。" & vbCrLf & _
           "問題があれば再実行してください。"

End Sub

「_」を使うことで、コードを見やすく改行できます。


変数を使ってメッセージを作る

実務では変数と組み合わせることが多いです。

Option Explicit

Sub MsgBoxWithVariable()

    Dim userName As String
    userName = "山田"

    MsgBox "ユーザー:" & userName & vbCrLf & _
           "処理が完了しました。"

End Sub

見やすいメッセージの作り方(実務向け)

少し工夫するだけで、かなり見やすくなります。

Option Explicit

Sub MsgBoxFormat()

    MsgBox "【処理結果】" & vbCrLf & vbCrLf & _
           "・データ件数:100件" & vbCrLf & _
           "・エラー件数:0件" & vbCrLf & vbCrLf & _
           "正常に完了しました。"

End Sub

空行(vbCrLfを2つ)を入れると読みやすくなります。


よくあるミス

① &(アンパサンド)を忘れる

' NG
MsgBox "1行目" vbCrLf "2行目"

必ず「&」でつなぎます。


② vbCrLfを書き忘れる

改行されない原因のほとんどがこれです。


③ コピペでエラーになる

Webからコピーした場合、次の問題が起きることがあります。

  • 全角記号(&など)
  • 見えない特殊文字

その場合は該当行を手入力し直すと解決することがあります。


まとめ

  • MsgBoxの改行は vbCrLf を使う
  • 文字列は「&」でつなぐ
  • 複数行メッセージも簡単に作れる
  • 実務では見やすさが重要

MsgBoxの改行はシンプルですが、使いこなすとメッセージの見やすさが大きく向上します。
ユーザーに分かりやすいメッセージを表示するためにも、ぜひ活用してみてください。

スポンサーリンク
スポンサーリンク
ExcelVBA
いがぴをフォローする

コメント

タイトルとURLをコピーしました