第4講 If文の学習
第5話 If...Else...文の入れ子式による5段階評価
5段階解答例その1
Private Sub CommandButton1_Click()
・
・
・
'各生徒の講評
For i = 1 To 40
If Cells(6 + i, 7) >= 350 Then
Cells(6 + i, 10) = "あなたはかなり優秀です。"
Else
If Cells(6 + i, 7) >= 300 Then
Cells(6 + i, 10) = "おめでとう。"
Else
If Cells(6 + i, 7) >= 250 Then
Cells(6 + i, 10) = "合格まであと一歩です。"
Else
If Cells(6 + i, 7) >= 200 Then
Cells(6 + i, 10) = "合格まで後2歩です。"
Else
Cells(6 + i, 10) = "かなりのがんばりが必要です。"
End If
End If
End If
End If
Next
End Sub
5段階解答例その2(If文のみによる)
For i = 1 To 40
If Cells(6 + i, 7) >= 350 Then
Cells(6 + i, 10) = "あなたはかなり優秀です。"
End If
If Cells(6 + i, 7) < 350 And Cells(6 + i, 7) >= 300 Then
Cells(6 + i, 10) = "おめでとう。"
End If
If Cells(6 + i, 7) < 300 And Cells(6 + i, 7) >= 250 Then
Cells(6 + i, 10) = "合格まで後一歩です。"
End If
If Cells(6 + i, 7) < 250 And Cells(6 + i, 7) >= 200 Then
Cells(6 + i, 10) = "合格まで後二歩です。"
End If
If Cells(6 + i, 7) < 200 Then
Cells(6 + i, 10) = "かなりのがんばりが必要です。"
End If
Next
では、皆さんこのIf文とFor文を組み合わせて、
各生徒の最高点・最低点、各教科の最高点・最低点を見いだす方法を考えてみてください。
といっても、ヒントなしでは難しいのでヒントを書いておきましょう。
Private Sub CommandButton1_Click()
Dim a As Integer, b As Integer, c As Integer, d As Integer,min As Integer,max As Integer
a = 36
b = 32
c = 48
d = 34
End Sub
この4つのデータから最大値・最小値を見いだすにはどうしたらよいでしょうか。
何のためにminとmaxという変数を用意したのか考えてください。
結果は、B5とB6のそれぞれ出力するものとします。
それでは、解答例は30行下。
コード例
Private Sub CommandButton1_Click()
Dim a As Integer, b As Integer, c As Integer, d As Integer,min As Integer,max As Integer
a = 36
b = 32
c = 48
d = 34
min = 100 'あり得ない最小値にしておく。
If min > a Then min=a
If min > b Then min=b
If min > c Then min=c
If min > d Then min=d
Cells (5 , 2) = min
max = 0 'あり得ない最大値にしておく。
If max < a Then max=a
If max < b Then max=b
If max < c Then max=c
If max < d Then max=d
Cells (6 , 2) = max
End Sub
これで、B5には最小値、B6には最大値が表示されます。
どうしてでしょうか。
トレースしてみましょう。
min = 100 'あり得ない最小値にしておく。
If min > a Then min=a
If min > b Then min=b
If min > c Then min=c
If min > d Then min=d
Cells (5 , 2) = min
まず、1行目
min = 100 'あり得ない最小値にしておく。
でminは100となっています。
すると2行目は、
If min > a Then min=a
a = 36ですから、条件式が真となり、min=aが実行され、minは36となります。
3行目は、
If min > b Then min=b
36と32に比較ですが、32の方が小さいのでmin=bが実行され、minは32となります。
4行目は、
If min > c Then min=c
32と48の比較ですが、32>48は真ではないので、min=cは実行されません。したがって、minは32のままです。
5行目は
If min > d Then min=d
32と34の比較ですが、再び32>34は真ではないので、min=dは実行されずminは32のままです。
すると、
Cells (5 , 2) = min
によって、B5には確かに最小値32が表示されることになります。
max = 0 'あり得ない最大値にしておく。
If max < a Then max=a
If max < b Then max=b
If max < c Then max=c
If max < d Then max=d
Cells (6 , 2) = max
についてはご自分でトレースして下さい。
では、皆さん
とシートを改良して、さらに最高点・最低点が表示されるようにコーティングも変更しましょう。
第4話へ 第6話へ
vc++講義へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
数学研究室に戻る