Excel VBA | VBAで改行する方法

Excel VBA VBA
スポンサーリンク

練習問題と回答

「改行」の理解を深めるために、初心者向けの練習問題を作ってみました。問題 → 回答例 → 解説の順でまとめます。

問題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で改行の扱いが違う」ことが体感できます。

VBA
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました