【VBAスタンダード対策】Select Case ステートメントにおける「Is」演算子の条件指定を攻略!
複数条件の分岐をすっきり記述できる Select Case。数値の大小比較を行う場合に使う Is 演算子 の正確な指定ルールと、正しく評価されるための書き方をマスターしましょう。
1. 問題:Select Case での比較演算子と Is の記述ルール
【 問題 】 下記のコードを実行して CheckRank プロシージャを呼び出した際、メッセージボックス(MsgBox)に "B評価" と表示させたい。空欄 ( A ) に入る正しい条件指定の記述はどれでしょうか?
Sub CheckRank()
Dim score As Integer
score = 75
Select Case score
Case Is >= 80
MsgBox "A評価"
Case ( A )
MsgBox "B評価"
Case Else
MsgBox "C評価"
End Select
End Sub
Dim score As Integer
score = 75
Select Case score
Case Is >= 80
MsgBox "A評価"
Case ( A )
MsgBox "B評価"
Case Else
MsgBox "C評価"
End Select
End Sub
① score >= 70
② Case >= 70
③ Is >= 70
④ >= 70
2. 正解:Case 節における条件指定の正解
正解: ③ Is >= 70
3. 解説:Case 節で比較演算子(>, <, >=, <= など)を使う場合の構文ルール
Select Case [評価する変数] の構造において、Case 節で「~以上」「~未満」のような比較を行う場合は、必ず Is 演算子 を前に添える必要があります。
[ Select Case における Case 節の書き方一覧 ]
1. 値を直接指定(完全一致):
2. 範囲を指定(~から~まで):
3. 比較演算子を使う(大小比較):
誤り(①, ②, ④)の理由:
・①(
・②(
・④(
1. 値を直接指定(完全一致):
Case 70 (※単一の値はそのまま書く)2. 範囲を指定(~から~まで):
Case 70 To 79 (※範囲指定キーワード To を使う)3. 比較演算子を使う(大小比較):
Case Is >= 70 (※比較演算子の前には必ず Is が必要!)誤り(①, ②, ④)の理由:
・①(
score >= 70):変数名を再度書く必要はありません。・②(
Case >= 70):Case を二重に書くことになりコンパイルエラーとなります。・④(
>= 70):Is を省略して演算子から始めると構文エラーになります。ここが試験に出る!: スタンダード試験では、VBAエディタ(VBE)の自動補完機能の罠についても問われます。VBEに Case >= 70 と入力すると自動的に Case Is >= 70 に整形されますが、試験の選択肢問題では 「Is が入った正しい構文を理解できているか」 が直接狙われます。
4. まとめ
「Select Case で比較演算子を使うときは Case Is 演算子 値 」。この構文ルールを確実に覚えておけば、多段階の判定や条件分岐を If 文よりも見やすく・ミスなく記述できるようになります。
PR