#077 | 逆転の発想で使うSelect Caseステートメント | VBA | |
Select Caseステートメントでは、普通は次のように1つの条件式(Tokuten)に対していくつかのCase節を使って評価を行います。 Select Case Tokuten
Case Is >= 80 Lank = "A" Case Is >= 50 Lank = "B" Case Else Lank = "C" End Select しかし条件式が少し複雑になった場合、例えば"Tokuten1"と"Tokuten2"の2つの値の組合せによって評価するような場合には、上記のようなSelect Caseステートメントの使い方では対応できません。次のようにIf〜Then〜Elseステートメントを使うことになります。 IfTokuten1 >= 80 And Tokuten2 >= 80 Then
Lank = "A" ElseIf (Tokuten1 >= 50 And Tokuten2 >= 50) And _ (Tokuten1 >= 80 Or Tokuten2 >= 80) Then Lank = "B" ElseIf Tokuten1 >= 50 And Tokuten2 >= 50 Then Lank = "C" Else Lank = "D" End If ここで、Select Caseステートメントの条件式とCase節の評価式の関係を反対に考えてみます。つまり、『もし得点が80点以上なら・・・・・』を『もし"得点が80点以上"が真なら』と考えます。さらに進んで『もし 真(True) = "得点が80点以上" なら』と考えると、上の複雑な条件式でもSelect Caseステートメントで表現することができます。 Select Case True
Case Tokuten1 >= 80 And Tokuten2 >= 80 Lank = "A" Case (Tokuten1 >= 50 And Tokuten2 >= 50) And _ (Tokuten1 >= 80 Or Tokuten2 >= 80) Lank = "B" Case Tokuten1 >= 50 And Tokuten2 >= 50 Lank = "C" Case Else Lank = "D" End Select |
|||
|
Copyright © T'sWare All rights reserved |