第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人全員の合否結果を出すプログラムを考えましょう。
解答


第4講第3話へ 第2話へ

講義トップへ

数学研究室に戻る