Excel VBA | VBAで改行する方法

Excel VBA VBA
スポンサーリンク

実務的な応用練習問題

では「複数のセルに入力されたデータをまとめて改行付きでレポートにする」実務寄りの応用練習問題です。

問題1:注文リストをレポートにまとめる

セル A2~A4 に「商品名」、B2~B4 に「数量」が入力されています。
これを1つのセル(D2)に次のように改行付きでまとめて表示してください。

商品名: コーヒー豆 数量: 2
商品名: 紅茶 数量: 1
商品名: クッキー 数量: 5

回答例

Sub Q1_OrderReport()
    Dim i As Long
    Dim report As String
    
    For i = 2 To 4
        report = report & "商品名: " & Range("A" & i).Value & _
                 " 数量: " & Range("B" & i).Value & vbLf
    Next i
    
    Range("D2").Value = report
End Sub
VB

解説

  • For ループで行を順番に処理。
  • 文字列を report にどんどん追加していく。
  • セルに表示するので vbLf を使用。

問題2:社員名簿をメッセージボックスで表示

セル A2~A5 に「名前」、B2~B5 に「部署」が入力されています。
これをメッセージボックスに次のように表示してください。

名前: 佐藤 部署: 営業
名前: 鈴木 部署: 開発
名前: 田中 部署: 総務
名前: 高橋 部署: 経理

回答例

Sub Q2_EmployeeList()
    Dim i As Long
    Dim msg As String
    
    For i = 2 To 5
        msg = msg & "名前: " & Range("A" & i).Value & _
              " 部署: " & Range("B" & i).Value & vbNewLine
    Next i
    
    MsgBox msg, vbInformation, "社員名簿"
End Sub
VB

解説

  • MsgBoxなので vbNewLine を使用。
  • ループで複数行をまとめて1つの文字列に。
  • vbInformation で情報アイコン付きに。

問題3:売上レポートを整形して出力

セル A2~A4 に「商品名」、B2~B4 に「売上金額」が入力されています。
これをセル E2 に次のようにまとめて表示してください。

売上レポート
----------------
商品: コーヒー豆 金額: 1200円
商品: 紅茶 金額: 800円
商品: クッキー 金額: 1500円

回答例

Sub Q3_SalesReport()
    Dim i As Long
    Dim report As String
    
    report = "売上レポート" & vbLf & "----------------" & vbLf
    
    For i = 2 To 4
        report = report & "商品: " & Range("A" & i).Value & _
                 " 金額: " & Range("B" & i).Value & "円" & vbLf
    Next i
    
    Range("E2").Value = report
End Sub
VB

解説

  • 見出しや区切り線も文字列に含めると「レポート感」が出る。
  • セルに出力するので vbLf を使用。
  • 実務で「報告書のひな型」を作るときに応用できる。

まとめ

  • セルにまとめる → vbLf
  • MsgBoxにまとめる → vbNewLine
  • ループで複数行を処理 → 文字列を連結して1つにまとめる
VBA
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました