Ejecuta uno de varios grupos de sentencias, según el valor de una expresión.
Sintaxis
Select Case testexpression
[Case expressionlist-n
[statements-n]] . . .
[Case Else
[elsestatements-n]]
End Select
Argumentos:
Testexpression: expresión numérica o de cadena.
expressionlist-n: necesario si aparece Case. Lista delimitada por comas de una o más expresiones.
statements-n: se ejecutan una o más sentencias si testexpression coincide con cualquier parte de expressionlist-n.
elsestatements-n: se ejecutan una o más sentencias si testexpression no coincide con ninguna de las cláusulas Case.
Observaciones
Si testexpression coincide con cualquier expresión de Case expressionlist, las sentencias que siguen a esa cláusula Case se ejecutan hasta la siguiente cláusula Case o, en el caso de la última cláusula, hasta End Select. A continuación, el control se transfiere a la sentencia que sigue a End Select. Si testexpression coincide con una expresión de expressionlist en más de una cláusula Case, solo se ejecutan las sentencias que siguen a la primera coincidencia.
La cláusula Case Else se utiliza para indicar los elementos elsestatements que se van a ejecutar si no se encuentra ninguna coincidencia entre testexpression y expressionlist en ninguna de las otras selecciones de Case. Aunque no es necesario, es una buena idea tener una sentencia Case Else en el bloque Select Case para manejar valores de testexpression imprevistos. Si ninguna expresión de Case expressionlist coincide con testexpression y no hay ninguna sentencia Case Else, la ejecución continúa en la sentencia que sigue a End Select.
Las sentencias Select Case se pueden anidar. Cada sentencia Select Case anidada debe tener una sentencia End Select coincidente.
En el siguiente ejemplo se muestra el uso de la sentencia Select Case.
Ejemplo 1:
Dim dayOfWeek
Dim result
' Assign the day of the week (can be any number between 1 and 7)
dayOfWeek = 3 ' 1 = Sunday, 2 = Monday, ..., 7 = Saturday
' Use Select Case to check the value of dayOfWeek
Select Case dayOfWeek
Case 1
result = "Sunday"
Case 2
result = "Monday"
Case 3
result = "Tuesday"
Case 4
result = "Wednesday"
Case 5
result = "Thursday"
Case 6
result = "Friday"
Case 7
result = "Saturday"
Case Else
result = "Invalid day"
End Select
' Now, result will contain the name of the day corresponding to dayOfWeek ( Tuesday in this case )