OR
誰でも自由に記事を投稿・編集できるオープンリファレンス
記事ID:699
区分:プログラム  |  分類:VB  |  最終更新日:2016/03/30
クリエイティブ・コモンズ 表示-継承ライセンス 2.1
【VB/VBA】Select Case~ステートメント制御
関連タグ:VB.NET, VB6, VBA, select文
このエントリーをはてなブックマークに追加      
本文
履歴
編集
閲覧数: 6,346
Excel VBA ナレッジ > 【VB/VBA】Select Case~ステートメント制御

一つの値に対して複数の条件に分岐する場合などは多分岐制御文を使用します。

VB/VBAではSelect Case~ステートメントを使用して、以下のように記述します。

 

【Select Case~ステートメントによる制御構文】

Select Case 比較対象
    Case 値1
        比較対象が値1の場合の処理
    Case 値2
        比較対象が値2の場合の処理
    Case Else
        比較対象が上記以外の場合の処理
End Select

 

上記のようにSelect Case~ステートメントでは条件を満たした場合の処理を各Case文のスコープ内に記述します。

どの条件にも当てはまらない場合はCase Elseに記述された処理が実行されます。

複数条件を同じCaseとしたい場合は、Caseに指定する値をカンマで区切って複数指定します。

 

【複数条件を同じCaseとする場合】

Select Case 比較対象
    Case 値1, 値2
        比較対象が値1または値2の場合の処理
    Case 値3
        比較対象が値3の場合の処理
    Case Else
        比較対象が上記以外の場合の処理
End Select

 

上記例では比較対象が値1および値2の場合に同じ処理が実行されます。

また、比較対象に対して比較演算子を用いて条件分岐する場合はCase Is文を使用します。

 

【Case Is文による比較条件分岐】

Select Case 比較対象
    Case Is >= 100
        比較対象が100以上の場合の処理
    Case Is >= 70
        比較対象が100未満70以上の場合の処理
    Case Else
        比較対象が上記以外の場合の処理
End Select

 

値の比較は上位から順に行われるので、上記例では値が「100以上」の場合と「100未満70以上」の場合と「それ以外」の場合に分かれます。

また、Select Case~ステートメントは値を範囲で指定することもできます。

 

【値を範囲で指定した場合】

Select Case 比較対象
    Case 70 To 100
        比較対象が70以上100以下の場合の処理
    Case 0 To 69
        比較対象が0以上69以下の場合の処理
    Case Else
        比較対象が上記以外の場合の処理
End Select

サンプルプログラム

Sub sample()
    Dim destination As String
    
    destination = "東京"
    
    Select Case destination
        Case "東京", "ロンドン"
            MsgBox "目的地は東京またはロンドンです。"
        Case "パリ"
            MsgBox "目的地はパリです。"
        Case "ニューヨーク"
            MsgBox "目的地はニューヨークです。"
        Case Else
            MsgBox "目的地はその他です。"
    End Select
    
End Sub

※ 上記例ではdestinationの値が「東京」なので「目的地は東京またはロンドンです。」とメッセージが表示されます。

関連記事
関連記事はありません。
外部リンク
外部リンクはありません。
- 記事検索 -