max = 0
⇒ 最大値を格納する変数maxを初期化
For i = 1 To 5
⇒ これにより i が1~5まで変化する
If Cells(i, 1) >= max Then
↓
新しいデータ ※Cells( i ,1 )
と
暫定最大値を記憶している変数max
との比較
MsgBox max
⇒メッセージボックスで
最大値が記憶されている変数maxを表示
Sub dai()
Dim max As Integer
max = 0
For i = 1 To 5
If Cells(i, 1) >= max Then
max = Cells(i, 1)
End If
Next i
MsgBox max
End Sub
左の様な表で
名前とそれに対応した点数が入力されている場合、最大値を探して、その最大値の得点と名前を表示する。
Sub dai2()
Dim max As Integer ①
max = 1 ②
For i = 1 To 5 ③
If Cells(i, 2) >= Cells(max, 2) Then ④
max = i ⑤
End If ④if文末
Next i ③for文末
MsgBox "最高点は" & Cells(max, 1) & Cells(max, 2) & "点です" ⑤
End Sub
① Dim max As Integer
⇒ 変数maxの宣言
②max = 1
⇒ 変数maxの初期化
※今回の変数maxには最大値が記憶されている行を記憶する。
※今回の初期化は1行目のデータが暫定最大値が記憶されている行と考える。
③ For i = 1 to 5
⇒変数iを1から5まで変化させる。
※For i = 2 to 5 の方が効率的ではある。
④ If Cells(i, 2) >= Cells(max, 2) Then
Cells( i , 2 )は点数が入っている2列目でiが1から5まで変化する事ですべての値を取り出し、比較することができる。
Cells( max , 2 )は暫定最大値が記憶されている場所。max には暫定最大値が記憶されている行が記憶されている。
⑤ max = i
④のif文により最大値の更新することが確定したら、最大値の値を更新するのではなく、最大値の値が記憶されている行を記憶する。
※max = cells( i , 2 ) ではないってこと!
⑥ MsgBox~~~
今回はメッセージボックスにより、最高点とその氏名を表示する。