第3講 For文(繰り返し処理)
第9話 成績一覧表の合計算出を2次元For文によって実現する
を2次元For文で実現するプログラム例
Private Sub CommandButton1_Click()
Dim w As Integer, i As Byte, j As Byte
For i = 0 To 4
w = 0 '0への初期化
For j = 0 To 2 '横(各生徒)合計算出
w = w + Cells(5 + i, 3 + j)
Next
Cells(5 + i, 6) = w '横(各生徒)合計算表示
Cells(5 + i, 7) = w / 3 '横(各生徒)平均表示
Next
For i = 0 To 2
w = 0 '0への初期化
For j = 0 To 4 '縦(各教科)合計算出
w = w + Cells(5 + j, 3 + i)
Next
Cells(10, 3 + i) = w '縦(各教科)合計表示
Cells(11, 3 + i) = w / 5 '縦(各教科)平均表示
Next
End Sub
Private Sub CommandButton2_Click()
Range("C10:G11").Select
Selection.ClearContents 'C10からG11までのセルの消去
Range("F5:G9").Select
Selection.ClearContents 'F5からG9までのセルの消去
Range("A1").Select
End Sub
参考ダウンロード添付ファイル
2次元For文にしたらかなりコードがすっきりしましたね。
第3講最後の課題です。
次の添付ファイルを
添付ファイル
を開いてください。
すると、シート
も、
Private Sub CommandButton1_Click()
End Sub
Private Sub CommandButton2_Click()
End Sub
コードも空っぽになっています。
実行ボタンを押すと
と同様な値がでて、消去を押すと
に戻るようにプログラムしてください。
例えば、C5に100点以下のランダムな整数値を出すには
Cells(5, 3) = Int(101*Rnd)
とします。
Rndは1未満のランダムな小数を出す乱数です。
Int(*)は*の小数点以下を切り捨てて整数にするものです。
1未満のランダムな小数に101をかけて、
小数部分を切り捨てれば100以下の整数になりますよね。
ただし、以下の条件をつけます。
ランダムな100以下の整数と合計・平均は2次元For文で、
出席番号は1次元For文で行うものとします。
国語や合計などは現時点ではFor文で扱うのは不可能ですから、
1個1個コードを書いていってください。
現時点と書いたのは配列を学んでいない今という意味です。
配列を学べば国語などの表示も1次元For文で扱えるようになります。
第8話へ 第10話へ