忍者ブログ
バイオインフォマティックス技術者試験、情報処理試験など、IT系の試験を基礎から勉強します。また、Javaなどプログラミングを勉強します。

【VBAスタンダード対策】Select Case ステートメントにおける「To」演算子の範囲指定を攻略!

Select Case で数値や文字の「~から~まで」という連続した範囲を指定したい場合に活躍するのが To 演算子 です。Is 演算子との違いや、正しく評価される記述ルールをマスターしましょう。

1. 問題:Select Case での範囲指定(To)の書き方

【 問題 】 下記のコードを実行して CheckCategory プロシージャを呼び出した際、メッセージボックス(MsgBox)に "ミドル層" と表示させたい。空欄 ( A ) に入る正しい範囲指定の記述はどれでしょうか?

Sub CheckCategory()
    Dim age As Integer
    age = 35

    Select Case age
        Case 0 To 19
            MsgBox "若年層"
        Case ( A )
            MsgBox "ミドル層"
        Case Else
            MsgBox "シニア層"
    End Select
End Sub

① 20 - 49
② 20 To 49
③ 20 ~ 49
④ Is 20 To 49

2. 正解:Case 節における To 指定の正解

正解: ② 20 To 49

3. 解説:To 演算子の構文ルールとひっかけポイント

特定の「最小値から最大値までの範囲」を判定条件にしたい場合は、[最小値] To [最大値] の形式で記述します。

[ Select Case における To 指定のルール ]

1. 構文の基本:
   Case 20 To 49 は、「20以上 かつ 49以下」を意味します。

2. 誤り(①, ③, ④)の理由:
・①(20 - 49): ハイフンで書くと「20マイナス49(=-29)」という引き算の計算式とみなされてしまいます。
・③(20 ~ 49): チルダ記号はVBAの範囲指定演算子として存在しません(コンパイルエラー)。
・④(Is 20 To 49): Is は比較演算子(>, <, >= など)とセットで使うキーワードです。To と併用すると構文エラーになります。

★ 補足(並び順のルール):
To を使う際は、必ず 「小さい値 To 大きい値」 の順番で記述する必要があります(例: 49 To 20 と逆に書くと判定が無視されます)。

ここが試験に出る!: スタンダード試験では、比較演算子を使う Case Is >= 20 と、範囲指定を行う Case 20 To 49 のキーワード(Is なのか To なのか)がごちゃ混ぜになった選択肢がよく出題されます。「To の前に Is はつけない」というルールをしっかり押さえておきましょう。


4. まとめ

「~から~までの範囲指定は Case 最小値 To 最大値 」。この書式をマスターすれば、年齢層の区分分けや売上実績に応じたインセンティブランクの判定などをシンプルにコード化できるようになります。


PR