
Contenido
La instrucción `Select Case` en VBA (Visual Basic for Applications) es una estructura de control que permite ejecutar diferentes bloques de código basados en el valor de una expresión. Funciona de manera similar a una serie de instrucciones `If … ElseIf … Else`, pero es a menudo más clara y concisa, especialmente cuando se tienen múltiples condiciones para evaluar.
Aquí tienes un ejemplo básico de cómo usar `Select Case`:
Sub EjemploSelectCase()
Dim number As Integer
number = 8 ' Puedes cambiar este valor para probar diferentes casos
Select Case number
Case 1
MsgBox "El número es 1"
Case 2 To 5
MsgBox "El número está entre 2 y 5"
Case 6, 7, 8
MsgBox "El número es 6, 7 u 8"
Case 9 To 10
MsgBox "El número es 9 o 10"
Case Else
MsgBox "El número es mayor que 10 o menor que 1"
End Select
End Sub
En este ejemplo, el `Select Case` evalúa el valor de la variable `number`. Si `number` es 1, se muestra el mensaje correspondiente. Si está entre 2 y 5, se muestra otro mensaje, y así sucesivamente. El `Case Else` es opcional y se ejecuta si ninguno de los `Case` anteriores coincide con el valor de la expresión.
Aquí puedes ver los distintos tipos de `Case` que puedes usar:
- `Case` con un único valor: `Case 1`
- `Case` con múltiples valores separados por comas: `Case 2, 3, 4`
- `Case` con un rango de valores usando `To`: `Case 5 To 10`
- `Case Else`: se ejecuta si ninguno de los casos anteriores coincide con la expresión
Puedes usar expresiones en los `Case` también, lo cual te proporciona flexibilidad adicional:
Sub EjemploSelectCaseConExpr()
Dim score As Integer
score = 76 ' Cambia este valor para probar diferentes casos
Select Case score
Case Is >= 90
MsgBox "Excelente"
Case Is >= 80
MsgBox "Muy bien"
Case Is >= 70
MsgBox "Bien"
Case Is >= 60
MsgBox "Suficiente"
Case Else
MsgBox "Insuficiente"
End Select
End Sub
En este caso, la instrucción `Select Case` evalúa el valor de `score` usando la cláusula `Is` para determinar un rango de valores y mostrar un mensaje de calificación.
Recuerda que `Select Case` solo funciona con comparaciones de igualdad o rangos utilizando `To`. Para otras comparaciones más complejas, como las operaciones lógicas, deberás usar la combinación de `If … ElseIf … Else`.