CoCoのYDブログ

心に思い浮かんだことを少し掘り下げ発信します

【VBA】Select Case ステートメント

こんにちは

今日はSelect Case ステートメントです。

 

If文を使用していて

If 変数 = 1 Then

Elseif 変数 = 2 Then

Elseif 変数 = 3 ...

なんてことありませんか?

 

ひとつの式や変数に対して条件を分岐させたい

そんなときはSelect Caseを使用してみましょう。

 

サンプルプログラム

Sub test()
    Dim 入力結果 As Long
    入力結果 = MsgBox("ボタンを押してください", vbYesNoCancel)

    Select Case 入力結果
        Case vbYes
            MsgBox "はいが押されました"
        Case vbNo
            MsgBox "いいえが押されました"
        Case vbCancel
            MsgBox "キャンセルが押されました"

        Case Else
            MsgBox "Error"
    End Select
End Sub

 

 これは前回のMsgBoxを使用したものです。

各ボタンを押された結果を変数に代入し、その結果から各条件で処理をするといったものです。

 

Select Caseの書き方はこんな感じです。

Select Case 変数

    Case 条件

        条件に一致した場合の処理

End Select

 

場合によってはElseを使用して下のように書く場合もあります

Select Case 変数

    Case 条件

        条件に一致した場合の処理

    Case Else

        条件に不一致だった場合の処理

End Select

 

このSelect Caseを使用することでだいぶとすっきりとしたコードになりますね。

ちなみにサンプルプログラムのCase Elseは閉じるボタンを押された場合の処理を記載したのですが、閉じるボタンを押した場合キャンセルと同様に扱われるようです。知らなかったw