Select Caseステートメント
Ifステートメントで多くの条件式を使用しているとコードが長くなり視認性を損ないます。
Select Caseステートメントを使用し、コードを見やすくしましょう。
構文
Select Case testexpression
[Case expressionlist-n
[statements-n]]
・・・
[Case Else
[elsestatements]]
End Select
| testexpression | 任意の数値式または文字列式。必須です。 |
| expressionlist-n | Case 節がある場合は、必須です。 Toキーワード は、値の範囲を指定します。小さい方の値を To の前に置いてください。 Isキーワードは、 Is と Like を除いた比較演算子と併用して値の範囲を指定します。 指定していない場合は、Isキーワードが自動挿入されます。 |
| statements-n | 省略可。 testexpression が expressionlist-n のいずれかと一致したときに実行されます。 |
| elsestatements | 省略可。 testexpression が Case 句のいずれとも一致しない場合に実行されます。 |
Select Caseを使ったサンプルコード
Public Sub Sample()
Dim num As Long
num = InputBox("数値を入力してください")
'■Ture、Falseの判定
Select Case num
Case 5 '■Tureの条件
MsgBox "5"
Case Else '■Falseの条件
MsgBox "5ではない"
End Select
'■Or(,)を使用する場合
Select Case num
Case 1,2
MsgBox "1or2"
Case 3,4
MsgBox "3or4"
Case Else
MsgBox "1,2,3,4ではない"
End Select
'■Andを使用する場合
Select Case True
Case num >= 1 And num <= 100
MsgBox "1~100の範囲内"
Case Else
MsgBox "1~100の範囲外"
End Select
'■Toを使用する場合
Select Case num
Case 1 To 100
MsgBox "1~100の範囲内"
Case Else
MsgBox "1~100の範囲外"
End Select
'■Isを使用する場合
Select Case num
Case Is <= 50
MsgBox "数は1から50の範囲内です。"
Case Else
MsgBox "数は1から50の範囲外です。"
End Sub
注意点
- Select Caseステートメントは上から順に判定を行い、最初に合致した条件だけを実行します。
- より複雑な条件式で分岐処理を行いたい場合はIfステートメントを使用してください。



コメント