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ステートメントを使用してください。
コメント