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


コメント