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

