Select Case を使用して複数の選択肢から処理を決定する

更新 : 2007 年 11 月

このレッスンでは、Select Case ステートメントを使用して、複数の条件に基づいてコードを実行する方法を説明します。

前のレッスンでは、If...Then ステートメントを使用して、条件によって異なるコード ブロックを実行する方法を示しました。If...Then ステートメントでも、ElseIf キーワードを使用すると、複数の条件を評価できますが、Select Case ステートメントでは、はるかに効果的な方法で複数の条件を評価できます。

Select Case ステートメントでは、必要に応じて数の制限なく条件 (ケース) を設定できるため、多くの選択肢がある状況のコードを記述するのに便利です。たとえば、プログラムで色の選択を格納する String 変数を使用しており、色の値を取得する必要がある場合を考えてみましょう。Select Case ステートメントのコードは次のようになります。

Select Case Color
  Case "red"
      MsgBox("You selected red")
  Case "blue"
      MsgBox("You selected blue")
  Case "green"
      MsgBox("You selected green")
End Select

このコードを実行すると、Select Case 行で式の値 (Color) が決定されます。このとき、Color が String 変数で、この変数が Select Case ステートメントを含むメソッドのパラメータであると仮定します。次に、Color の値が最初の Case ステートメントの値と比較されます。値が同じであれば、次のコード行が実行され、End Select 行にスキップします。値が同じでなければ、次の Case 行が評価されます。

Case ステートメントでは、さまざまな形式を使用できます。上の例では、String を使用しています。この他にも、任意のデータ型や式を使用できます。

To キーワードを次のように使用すると、一定の範囲の数値を評価できます。

Case 1 To 10

この例では、1 から 10 までの数値であれば一致していると見なされます。

また、単一の Case ステートメント内で、次のように値をコンマで区切ることによって、複数の値を評価できます。

Case "red", "white", "green"

この例では、3 つの値のうちいずれかであれば一致していると見なされます。

さらに、次のように比較演算子と Is キーワードを使用することによって値を評価できます。

Case Is > 9

この例では、9 よりも大きい数値であれば一致していると見なされます。

Case Else

上記の例は、可能性のある条件がすべてわかっている場合には役立ちますが、想定しなかった条件が発生した場合はどうなるでしょうか。たとえば、Color の値が yellow である場合、コードで評価されるのは上記の 3 つのケースのみであるため、一致していると見なされず、メッセージ ボックスが表示されません。

Case Else ステートメントを使用すると、一致が見つからなかった場合にコードを実行できます。次に例を示します。

Select Case Color
  Case "red"
      MsgBox("You selected red")
  Case "blue"
      MsgBox("You selected blue")
  Case "green"
      MsgBox("You selected green")
  Case Else
      MsgBox("Please choose red, blue, or green")
End Select

上記のコードでは、Color の値が yellow である場合、この値と最初の 3 つの Case 行が比較されますが、一致が見つかりません。Case Else 行に到達すると、End Select に移動する前にコードの次の行が実行されます。

Select Case ステートメントを使用するには

  1. [ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。

  2. [新しいプロジェクト] ダイアログ ボックスの [テンプレート] ペインで、[Windows アプリケーション] をクリックします。

  3. [プロジェクト名] ボックスに「SelectCase」と入力し、[OK] をクリックします。

    新しい Windows フォーム プロジェクトが開きます。

  4. [ツールボックス] から、1 つの TextBox コントロールと 1 つの Button コントロールをフォームにドラッグします。

  5. ボタンをダブルクリックしてコード エディタを開きます。

  6. Button1_Click イベント ハンドラに次のコードを入力します。

    Dim Number As Integer = CInt(Textbox1.Text)
    Select Case Number
      Case 1
          MsgBox("Less than 2")
      Case 2 To 5
          MsgBox("Between 2 and 5")
      Case 6, 7, 8
          MsgBox("Between 6 and 8")
      Case 9 To 10
          MsgBox("Greater than 8")
      Case Else
          MsgBox("Not between 1 and 10")
    End Select
    
  7. F5 キーを押してプログラムを実行します。

  8. テキスト ボックスに名前を入力し、ボタンをクリックします。

    入力した数値に対応する Case ステートメントのメッセージを含むメッセージ ボックスが表示されます。

次の手順

このトピックでは、Select Case ステートメントを使用して、複数の条件から選択する方法を説明しました。これで、次のレッスン (「問題が発生した場合の対処 : エラー処理」) に進むことができます。

次のレッスン : 「問題が発生した場合の対処 : エラー処理

参照

処理手順

問題が発生した場合の対処 : エラー処理

二者択一のプログラム : If...Then ステートメント

参照

Select...Case ステートメント (Visual Basic)