第4講 If文(もしもボックス)
第3話 成績一覧表に不合格を加える
011
を実現するプログラム例
Private Sub CommandButton1_Click()
  CommandButton2_Click 'シートのB4からH11までを消去させる
  Dim w As Integer, i As Byte, j As Byte
  '以下国語などの表示
  Cells(4, 3) = "国語"
  Cells(4, 4) = "数学"
  Cells(4, 5) = "英語"
  Cells(4, 6) = "合計"
  Cells(4, 7) = "平均"
  
Cells(4, 8) = "合否"
  Cells(10, 2) = "合計"
  Cells(11, 2) = "平均"
  For i = 1 To 5 '出席番号の表示
    Cells(4 + i, 2) = i
  Next
  For i = 0 To 4 '100点以下のランダムな得点の入力
    For j = 0 To 2
      Cells(5 + i, 3 + j) = Int(101 * Rnd)
    Next
  Next
  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 '横(各生徒)平均表示
    
If w >= 150 Then Cells(5 + i, 8) = "合格" Else Cells(5 + i, 8) = "不合格"
  Next
  For i = 0 To 4
    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("B4:H11").Select
  Selection.ClearContents 'C10からG11までのセルの消去
  Range("A1").Select
End Sub
参考ダウンロード添付ファイル

では、第4話の課題です。
合否判定は150点以上か150点未満の
2段階評価でしたが、
合否の欄の左に講評を加えて、
180点以上なら「優秀です」、
180点未満120点以上なら「普通です」、
120点未満なら「不出来です」、
と表示させるようにさせてください。
生徒の人数も5人程度では、
いろいろな結果が出ませんので、
この際40人に変更します。
012
       ~
101

評価を3段階にするには、
If文を入れ子式に使います。
例えば、
  If w >= 1000 Then
    A
  Else 
    If w >= 500 Then
      B
    Else
      C
    End If
  End If
のように使います。
この場合は、
wが1000以上ならAを、
「1000以上ではない=1000未満」で500以上ならBを
500未満ならCを実行させなさいになります。


第2話へ 第4話へ


トップへ