練習問題と回答
「改行」の理解を深めるために、初心者向けの練習問題を作ってみました。問題 → 回答例 → 解説の順でまとめます。
問題1:セルに住所を3行で表示する
セル A1 に「東京都」「中央区」「銀座1-1」を3行で表示するVBAコードを書いてください。
回答例
Sub Q1_Address()
Range("A1").Value = "東京都" & vbLf & "中央区" & vbLf & "銀座1-1"
End Sub
VB解説
- セル内改行は vbLf を使うのがポイント。
&で文字列をつなぎ、改行を挟んでいる。- 実行するとセルA1に3行で住所が表示される。
問題2:メッセージボックスで改行する
「こんにちは」「お元気ですか?」を2行で表示するメッセージボックスを作ってください。
回答例
Sub Q2_MsgBox()
MsgBox "こんにちは" & vbNewLine & "お元気ですか?"
End Sub
VB解説
- MsgBoxでは vbNewLine を使うのが安全。
- 環境に応じて適切な改行コードに変換してくれる。
問題3:入力チェックのエラーメッセージ
名前と年齢が未入力のとき、メッセージボックスで次のように表示してください。
入力エラーがあります
- 名前を入力してください
- 年齢を入力してください
回答例
Sub Q3_ErrorMessage()
Dim msg As String
msg = "入力エラーがあります" & vbNewLine & _
"- 名前を入力してください" & vbNewLine & _
"- 年齢を入力してください"
MsgBox msg, vbExclamation, "確認"
End Sub
VB解説
- 複数行のメッセージは一度変数にまとめると見やすい。
vbExclamationを指定すると警告アイコン付きで表示される。
問題4:複数セルの内容を1セルに改行してまとめる
セル B1~B3 にそれぞれ「りんご」「みかん」「ぶどう」と入力されています。これらを改行でつないでセル C1 に表示してください。
回答例
Sub Q4_JoinCells()
Range("C1").Value = Range("B1").Value & vbLf & _
Range("B2").Value & vbLf & _
Range("B3").Value
End Sub
VB解説
- セルの値を取り出して
vbLfでつなぐ。 - 実行するとC1に3行で「りんご」「みかん」「ぶどう」が表示される。
まとめ
- セル内改行 → vbLf
- MsgBox改行 → vbNewLine
- 複数行をまとめるときは変数や連結を工夫
👉 これらを実際にExcelで試すと「セルとMsgBoxで改行の扱いが違う」ことが体感できます。

