7.1.6 Select Case
- 機能
-
条件式の値に従って,複数のステートメントブロックのどれかを実行させるフロー制御ステートメントです。
- 形式
Select Case TestExpression 〔Case ExpressionList-n 〔Statements-n〕〕... 〔Case Else 〔ElseStatements〕〕 End〔Select〕
- 指定項目
-
- TestExpression
-
任意の条件式を指定します。
- ExpressionList-n
-
Case節を記述する場合は必ず指定します。一つ,または複数の式をコンマ( , )で区切って指定します。
- Statements-n
-
TestExpressionがExpressionList-nのどれかと一致するとき,一致したStatements-nのステートメントが実行されます。Statements-nには複数の文を記述できます。複数の文を記述する場合は,文ごとに改行します。
- ElseStatements
-
TestExpressionがどのCase節とも一致しないとき,ElseStatementsのステートメントが実行されます。ElseStatementsには複数の文を記述できます。複数の文を記述する場合は,文ごとに改行します。
- 説明
-
TestExpressionがCase節のどちらかの式ExpressionListに一致すると,次のCase節,またはEnd SelectステートメントまでのStatementsが実行されます。ブロックの実行が終わると,制御はEnd Selectステートメントの次のステートメントに移ります。TestExpressionが複数のCase節に一致するときは,最初に一致したCase節に続くステートメントだけが実行されます。
Case Else節は,TestExpressionがどのCase節のExpressionListにも一致しなかったときに実行するステートメントElseStatementsを指定します。Case Elseステートメントは必ずしも必要ではありませんが,予測できないTestExpressionの値を処理するために,Select CaseブロックにCase Elseステートメントを記述することを推奨します。Case節の式ExpressionListがTestExpressionと一致しない場合でCase Elseステートメントが指定されていないときは,End Selectステートメントの次のステートメントから実行が続けられます。
Select Caseステートメントは,ネスト(入れ子)構造にすることができます。このとき,各Select Caseステートメントには,それぞれ対応するEnd Selectステートメントが必要です。
- 例
' 引数Resultを判定しメッセージを組み立て,"Result.txt"に出力する。 Sub LogOutput ( Result ) Dim MessageText Select Case Result Case "OK" MessageText = " 正常終了しました。 " & "Status=[" & Result & "]" Case "NG" MessageText = " 異常終了しました。 " & "Status=[" & Result & "]" Case Else MessageText = " 予期せぬエラーが発生しました。 " & _ "Status=[" & Result & "]" End Select Message ( Target_File ,_SCF_+"Result.txt" ,MessageText _ ,128 ,1024 ) End Sub
- 対象バージョン
-
JP1/Script 01-00以降