第5講 IF文に挑戦しよう。
第1話 IF文基本
今回の目標はサンプル8の合否の欄にIF文を使って合否結果を埋めることです。
いつものようにダブルクリックをしてサンプル8を開きましょう。
5教科の平均が50点以上なら合格、50点未満なら不合格としましょう。
IF文はの基本は次の形です。
If P Then A
IFの意味は「もし」、Thenの意味は「なら」です。
ですから、このIF文の意味は「もしP(が正しい)ならAをしなさい」ということになります。
例えば、出席番号1番の生徒の合否結果を書くなら、
If Cells(7, 8) >= 50 Then Cells(7, 9) = "合格"
If Cells(7, 8) < 50 Then Cells(7, 9) = "不合格"
1行目は、平均点が50以上ならその隣の合否の欄に「合格」
2行目は、平均点が50未満ならその隣の合否の欄に「不合格」
と書きなさいという意味になります。
なおVisual Basicには≦や≧はありませんので、
それぞれ
<=、>=で代用します。
したがって、出席番号1番の生徒の合否結果を書かせるには、
Private Sub CommandButton1_Click()
Dim wa As Integer, i As Integer, j As Integer
For i = 7 To 46
wa = 0
For j = 2 To 6
wa = wa + Cells(i, j)
Next
Cells(i, 7) = wa
Cells(i, 8) = wa / 5
Next
For i = 2 To 6
wa = 0
For j = 7 To 46
wa = wa + Cells(j, i)
Next
Cells(47, i) = wa
Cells(48, i) = wa / 40
Next
wa = 0
For i = 7 To 46
For j = 2 To 6
wa = wa + Cells(i, j)
Next
Next
Cells(47, 7) = wa
Cells(47, 8) = wa / 5
Cells(48, 7) = wa / 40
Cells(48, 8) = wa / 200
If Cells(7, 8) >= 50 Then Cells(7, 9) = "合格"
If Cells(7, 8) < 50 Then Cells(7, 9) = "不合格"
End Sub
とすればいいわけです。
では、出席番号2番以降も結果を表示させるには、
If Cells(7, 8) >= 50 Then Cells(7, 9) = "合格"
If Cells(7, 8) < 50 Then Cells(7, 9) = "不合格"
と同じような記述を後39回も書かなければならないのでしょうか。
すでにFor文を習っている皆さんなら結論は明らかですよね。
上のプログラムに改良を加えて、40人全員の合否結果を出すプログラムを考えましょう。
解答