第5講 もしもボックス(If文)
第8話 否定付きもしもボックスの入れ子式使用による5段階評価


前話問題
90点以上『神』
90点未満80点以上『准超越者』
80点未満60点以上『人間』
60点未満40点以上『人造人間ベム・ベロ・ベラ級』
40点未満『ピノキオ以下の存在』
の5段階評価をB11に表示させるマクロ


解答例
Private Sub CommandButton1_Click()
  Cells(6, 2) = Int(100 * Rnd())
  If Cells(6, 2) >= 60 Then
    Cells(8, 2) = "合格"
  Else
    Cells(8, 2) = "不合格"
  End If
  If Cells(6, 2) >= 70 Then
    Cells(9, 2) = "優秀"
  Else
    If Cells(6, 2) >= 50 Then
      Cells(9, 2) = "普通"
    Else
      Cells(9, 2) = "努力が必要"
    End If
  End If
  If Cells(6, 2) >= 80 Then
    Cells(10, 2) = "天才級"
  Else
    If Cells(6, 2) >= 65 Then
      Cells(10, 2) = "秀才級"
    Else
      If Cells(6, 2) >= 50 Then
        Cells(10, 2) = "平凡"
      Else
        Cells(10, 2) = "不出来"
      End If
    End If
  End If
  If Cells(6, 2) >= 90 Then
    Cells(11, 2) = "神"
  Else
    If Cells(6, 2) >= 80 Then
      Cells(11, 2) = "准超越者"
    Else
      If Cells(6, 2) >= 60 Then
        Cells(11, 2) = "人間"
      Else
        If Cells(6, 2) >= 40 Then
          Cells(11, 2) = "人造人間ベム・ベロ・ベラ級"
        Else
          Cells(11, 2) = "ピノキオ以下の存在"
        End If
      End If
    End If
  End If
End Sub

If~Else~文の入れ子式による多段階評価は、頭が混乱します。
実は、否定付きのもしもボックスを入れ子式に使用しなくても同じことを実現できます。
ヒントを書いておきます。
xが90未満80以上は数学でいえば、80≦x<90ですが、
VBAでは、
(80 <= x) and (x < 90)
と表現します。andはかつを意味します。
さて、このヒントを参考にIf文のみで合否、3段階評価、4段階評価、5段階評価を実現してください。





第7話へ 第9話へ

トップ

vc++講義へ

初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
vb講義へ
VB講義基礎へ
初心者のためのJava 入門 基礎から応用まで
数学研究室に戻る