プロが教えるわが家の防犯対策術!

[Excel]VBAを使って各クラスの科目別平均値や個人の平均値を計算するマクロの作成方法が知りたい
VBA初心者です
以下のようなマクロをVBAで作成したいと思います。
各個人の成績平均値を右に記入する
各クラスの科目別平均値、合計点の平均値を末尾に計算する。

また、Do ~ Loopを使うのが指定された

「[Excel]VBAを使って各クラスの科」の質問画像

質問者からの補足コメント

  • つらい・・・

    写真が見づらいのがすまない。
    表によると:各クラスは50人がいます,全部は5つクラスがあります。A~J列は:クラス、番号、氏名、国語、英語、数学、理科、社会、合計、個人成績の平均(未記入)そして、K~TはBクラス、U~AD はCクラス.....Eクラスまで。まだ、VBAを使うのは指示なので、関数はダメです。

      補足日時:2017/10/31 21:56

A 回答 (1件)

こんばんは!



AVERAGE関数ではダメなのですか?

どうしてもVBAで!というコトであれば一例です。
画像通りに規則正しく列方向に各クラスが並んでいるとします。

Sub Sample1()
Dim i As Long, j As Long
Dim k As Long, lastRow As Long
For j = 1 To Cells(1, Columns.Count).End(xlToLeft).Column Step 10
lastRow = Cells(Rows.Count, j).End(xlUp).Row
Cells(lastRow + 1, j + 2) = "クラス平均"
'//科目別(列)平均//
For k = j + 3 To j + 8
Cells(lastRow + 1, k) = WorksheetFunction.Average(Range(Cells(2, k), Cells(lastRow, k)))
Next k
'//個人別(行)平均//
For i = 2 To lastRow + 1
Cells(i, j + 9) = WorksheetFunction.Average(Range(Cells(i, j + 3), Cells(i, j + 7)))
Next i
Next j
MsgBox "完了"
End Sub

※ Do~Loopではなく、For~Nextにしています。m(_ _)m
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!