vba seminar banner 
    Home   >>   Quiz   >>   Judge Grade
"成績判定" 
"出力例"
成績を判定するプログラムを作成しろ

データは、乱数を使って出力する
judgegrade01
"サンプルマクロ01"
"ヒント・解説01"
Public Sub Judgegrade01()

Dim i As Integer

Const n As Byte = 30

Randomize

For i = 1 To n
    
    Range("C" & i).Value = i
    Range("D" & i).Value = Fix((Rnd * 100) + 1)
    
    Select Case Range("D" & i).Value
    
        Case 90 To 100
            Range("E" & i).Value = "AA"
        Case 80 To 89
            Range("E" & i).Value = "A"
        Case 70 To 79
            Range("E" & i).Value = "B"
        Case 60 To 69
            Range("E" & i).Value = "C"
        Case 0 To 59
            Range("E" & i).Value = "F"
        Case Else
            Range("E" & i).Value = "I"
            
    End Select
    
Next i

End Sub
	
  1.Randomize関数を使って乱数を初期化する。

  2.Fix()関数で小数部分を切り捨てる

  3.Rnd()関数で乱数を発生させる。
    Fix((最大-最小+1)*Rnd+最小)  最小-最大の乱数発生

  4.Select Case文で条件判定を行う(Ifでも可)
"サンプルマクロ02"
"ヒント・解説02"
Public Function JGrade(score As Integer) As String

Select Case score

Case 90 To 100
    JGrade = "AA"
Case 80 To 89
    JGrade = "A"
Case 70 To 79
    JGrade = "B"
Case 60 To 69
    JGrade = "C"
Case 0 To 59
    JGrade = "F"
Case Else
    JGrade = "I"
    
End Select

End Function


Public Sub Judgegrade02()

Dim i As Integer

Const n As Byte = 30

Randomize

For i = 1 To n
    
    Range("C" & i).Value = i
    Range("D" & i).Value = Fix((Rnd * 100) + 1)
    Range("E" & i).Value = JGrade(Range("D" & i).Value)
    
Next i

End Sub
	
  1.戻り値がString型の関数をつくる。引数はInteger型。

  2.Rnd()関数を使って1-100までの範囲の乱数を作成して表示する。

  3. 作成したFunction()を使って判定する。