Cuando necesitas que tu código tome decisiones basadas en múltiples escenarios posibles, la estructura Select Case en VBA se convierte en una herramienta fundamental. A diferencia de los condicionales simples, esta instrucción te permite organizar de forma clara y ordenada cada uno de los caminos que puede tomar tu programa dependiendo del valor de una variable.
¿Qué es Select Case y por qué es importante ser exhaustivo?
Select Case es una instrucción que permite evaluar una variable y definir qué acciones ejecutar según el valor que contenga [01:00]. En lugar de anidar múltiples condicionales, se listan los casos posibles de manera estructurada. Cada caso lleva sus propias instrucciones, lo que hace el código más legible y fácil de mantener.
Un punto clave es la exhaustividad: al usar Select Case, debes asegurarte de cubrir todos los escenarios posibles [01:15]. Si omites algún caso, tu función podría no devolver resultado o generar errores inesperados.
¿Cómo construir una función con Select Case paso a paso?
El ejercicio consiste en crear una función que reciba tres números enteros, los sume y determine si el resultado es negativo, cero o positivo [01:30].
¿Cómo se define la función y sus variables?
Primero se declara la función pública con tres argumentos de tipo integer:
vba
Public Function SC(A As Integer, B As Integer, C As Integer) As String
El tipo de retorno es String porque el resultado será un texto descriptivo como "negativo", "cero" o "positivo" [02:05]. Luego se declara una variable para almacenar la suma:
vba
Dim suma As Integer
suma = A + B + C
Si los números tuvieran decimales, sería necesario usar tipos de dato como Single o Double en lugar de Integer [02:30]. De lo contrario, VBA cortaría la parte decimal y el resultado no sería preciso.
¿Cómo se escriben los casos dentro de Select Case?
Después de calcular la suma, se abre la estructura indicando qué variable se va a evaluar [03:05]:
vba
Select Case suma
Case Is < 0
SC = "negativo"
Case Is = 0
SC = "cero"
Case Else
SC = "positivo"
End Select
- Case Is < 0: cuando la suma es menor que cero, la función devuelve "negativo" [03:15].
- Case Is = 0: cuando la suma es exactamente cero, devuelve "cero" [03:40].
- Case Else: cubre todos los demás casos no especificados anteriormente [04:10]. Aunque podrías escribir
Case Is > 0, usar Case Else garantiza que no quede ningún escenario sin atender.
Recuerda que los textos siempre van entre comillas dobles para que VBA no los interprete como instrucciones [03:30].
¿Cómo se cierra correctamente la estructura?
Así como toda función se cierra con End Function, la instrucción Select Case se cierra con End Select [04:30]. Olvidar este cierre generará un error de compilación.
¿Cómo probar la función en la ventana de inmediato?
La ventana de inmediato (Immediate Window) permite ejecutar funciones rápidamente sin necesidad de escribirlas en una celda [04:45]. Se usa el signo de interrogación seguido de la función:
?SC(-8, 5, 0) devuelve "negativo" porque -8 + 5 + 0 = -3.
?SC(2, -1, -1) devuelve "cero" porque 2 + (-1) + (-1) = 0.
?SC(3, 4, 5) devuelve "positivo" porque 3 + 4 + 5 = 12.
Estos tres resultados confirman que la función cubre correctamente todos los escenarios posibles [05:10].
Ahora es tu turno de practicar. Puedes crear una función que determine si un número es par o impar, o que compare un valor con tu edad. Comparte en los comentarios qué caso elegiste y cómo quedó tu código.