Excel VBA | VBAで改行する方法

Excel VBA VBA
スポンサーリンク

発展練習問題

ここからは「実務でそのまま使える」発展問題を作ってみましょう。
テーマは 日付や担当者名をヘッダーに入れる/合計や平均を計算してレポートに追加する です。

問題1:日付と担当者名をヘッダーに入れる

セル A2~A4 に「商品名」、B2~B4 に「金額」が入力されています。
セル D2 に次のようなレポートを作成してください。

売上レポート
日付: 2025/10/17
担当者: 山田太郎
----------------
商品: コーヒー豆 金額: 1200円
商品: 紅茶 金額: 800円
商品: クッキー 金額: 1500円

回答例

Sub Q1_ReportWithHeader()
    Dim i As Long
    Dim report As String
    Dim today As String
    Dim staff As String
    
    today = Format(Date, "yyyy/mm/dd")
    staff = "山田太郎"
    
    report = "売上レポート" & vbLf & _
             "日付: " & today & vbLf & _
             "担当者: " & staff & vbLf & _
             "----------------" & vbLf
    
    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

問題2:合計金額を最後に表示する

上記のレポートの最後に「合計金額」を追加してください。

合計金額: 3500円

回答例

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

問題3:合計と平均を追加する

最後に「合計金額」と「平均金額」を表示してください。

合計金額: 3500円
平均金額: 1166.67円

回答例

Sub Q3_ReportWithTotalAndAverage()
    Dim i As Long
    Dim report As String
    Dim total As Double
    Dim count As Long
    Dim avg As Double
    
    report = "売上レポート" & vbLf & "----------------" & vbLf
    
    For i = 2 To 4
        report = report & "商品: " & Range("A" & i).Value & _
                 " 金額: " & Range("B" & i).Value & "円" & vbLf
        total = total + Range("B" & i).Value
        count = count + 1
    Next i
    
    avg = total / count
    
    report = report & "----------------" & vbLf & _
             "合計金額: " & total & "円" & vbLf & _
             "平均金額: " & Format(avg, "0.00") & "円"
    
    Range("D2").Value = report
End Sub
VB

ポイント整理

  • 日付: Format(Date, "yyyy/mm/dd") で今日の日付を取得。
  • 担当者名: 文字列変数に入れてヘッダーに追加。
  • 合計: ループで金額を足し算。
  • 平均: 合計 ÷ 件数。Format で小数点以下を整形。
  • セル出力: vbLf で改行。
VBA
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました