¿cómo utilizar la instrucción select case en vba?
Puntos clave
- Con SELECT CASE, puede probar múltiples condiciones, especialmente cuando trabaja en más de dos.
- El código que escribe con SELECT CASE está mucho más estructurado que el código condicional estándar.
- Es más fácil cambiarlo cuando necesita ajustar uno o más valores en el código.
¿Qué es el caso de selección de VBA?
VBA SELECT CASE es una declaración para probar múltiples condiciones. En esta declaración, puede especificar una condición, luego especificar algún código para ejecutar si esa condición es verdadera, luego especificar una segunda condición y algún código para ejecutar si esa condición es verdadera. De esta manera puede especificar múltiples condiciones y múltiples declaraciones.
La sintaxis para seleccionar el caso.
A continuación se muestra la sintaxis que debe seguir para escribir una declaración de caso seleccionada.
Select Case Test Expression Case (Condition to Test) Statement1 [Line of Code to Run if CASE 1 is TRUE] Case (Condition to Test) Statement1 [Line of Code to Run if CASE 2 is TRUE] Case Else Statement [Line of Code to Run if no CASE is TRUE] End Select
En SELECT CASE, la sintaxis comienza con la palabra clave «Seleccionar» y termina con «Finalizar selección». Para entender su sintaxis, debemos dividirla en cuatro partes:
- En la PRIMERA parte, debe especificar la «expresión de prueba» en la que se prueban todas las condiciones.
- Después de eso, en la SEGUNDA parte, debe especificar el caso que se va a probar (es decir, la condición que se va a probar).
- Ahora en la TERCERA parte tienes que escribir otro caso en el que tienes que probar si la condición de la segunda parte no es VERDADERA.
- Al final, en la Parte CUATRO , debe especificar un resultado que debería ocurrir cuando los dos casos anteriores no sean VERDADEROS.
Un ejemplo sencillo para entender una declaración de caso selecto
La sintaxis de SELECT CASE se explica por sí misma y es bastante fácil de seguir al escribir código. Pero tomemos un ejemplo y entendámoslo completamente. A continuación tienes un código sencillo para probar el valor de la celda A1.
Sub SelectCaseExample1() Select Case Range("A1").Value Case "Yes" MsgBox "It's a Yes." Case "No" MsgBox "It's a No" Case Else MsgBox "Can't Say" End Select End Sub
Ahora entendamos este código con cada línea:
- PRIMERO tiene la palabra clave SELECT CASE y la celda A1 para usar como expresión para probar la condición.
- SEGUNDO , tiene la palabra clave CASE y la condición («SÍ») para verificar desde la celda A1 y el código para mostrar un cuadro de mensaje con el mensaje «Es un sí» si la condición mencionada en el caso1 es verdadera.
- TERCERO, nuevamente tiene la palabra clave case y la condición («No») para verificar desde la celda A1 y el código para mostrar un cuadro de mensaje con el mensaje «Es un no» si la condición mencionada en el caso dos es verdadera.
- CUARTO , tiene la palabra clave CASE ELSE y una línea de código para mostrar un cuadro de mensaje con un mensaje «No puedo decir» si ninguno de los casos es verdadero.
- QUINTO , tiene la palabra clave END SELECT para finalizar la instrucción SELECT CASE.
Relacionado: CUADRO DE MENSAJE VBA
Puntos importantes
- Puede probar múltiples condiciones y ejecutar una línea de código según el resultado.
- Puede utilizar operadores de comparación (=, >, <, <>, >=, <=) al probar una condición utilizando la palabra clave Is.
- Puede utilizar una coma para probar varias condiciones en el mismo caso.
- También puede utilizar un rango de números al probar una condición en un solo caso.
- Cuando se cumple una condición, VBA se detiene para probar el resto de los casos de la declaración.
- También puede agregar una sección case else al final para ejecutar una línea de código cuando no se cumpla ninguna de las condiciones.
- Puede omitir el uso de la declaración CASE END.
Más ejemplos de uso Seleccionar caso
Es hora de utilizar SELECT CASE de diferentes maneras y estos son algunos de los ejemplos útiles y esenciales que puede aprender.
100 ejemplos de macros de Excel
1. Seleccione el caso con números.
Al escribir código VBA para la instrucción SELECT CASE, puede utilizar operadores para comparar valores. Ahora, en el código siguiente, tiene los operadores >, < y = para probar las condiciones.
Sub SelectCaseExample1() Select Case Range("A1").Value Case Is >= 45 MsgBox "Pass" Case Is < 45 MsgBox "Fail" End Select End Sub
- El primer caso de esta declaración verifica si el valor de la celda A1 es mayor o igual a 45 o no y devuelve un cuadro de mensaje con el mensaje «Pasar».
- Y el segundo caso de la declaración verifica si el valor de la celda A1 es menor que 45 y devuelve un cuadro de mensaje con el mensaje «Error».
2. Seleccione el caso con un rango de números.
También puede utilizar un rango de números para realizar pruebas según la condición. En el código siguiente tienes una condición con un rango de números en cada caso para probar.
Sub SelectCaseExample2() Select Case Range(“A1”).Value Case 45 To 100 MsgBox “Pass” Case 0 To 44 MsgBox “Fail” Case Else MsgBox “Out of Range” End Select End Sub
- El primer caso de la declaración verifica el número en la celda A1 usando el rango de números de 45 a 100 y devuelve «Aprobado» si el valor cae por debajo de este rango.
- La segunda declaración tiene un rango de 0 a 44 para probar con el valor en la celda A1 y devuelve «Fallo» si el valor cae por debajo de este rango.
- La tercera declaración es case else muestra un cuadro de mensaje con el mensaje «Fuera de rango» si los casos uno y dos son falsos.
3. Usando el operador de dos puntos
Al escribir código para SELECT CASE, puede utilizar los operadores de dos puntos para escribir el caso completo en una sola línea.
En el código siguiente, la línea comienza con el caso, luego la condición a probar, luego dos puntos y luego la declaración a ejecutar en este caso es verdadera.
Sub SelectCaseExample3() Select Case Range(“A1”).Value Case 45 To 100: MsgBox “Pass” Case 0 To 44: MsgBox “Fail” Case Else: MsgBox “Out of Range” End Select End Sub
4. Utilice Seleccionar caso con múltiples condiciones
Al igual que establecer un rango para un caso, también puede especificar varios valores para probar la condición. En el código siguiente, cada caso tiene tres números para probar.
Sub SelectCaseExample() Select Case Range("A1").Value Case 1, 3, 5 MsgBox "Yes" Case 2, 4, 6 MsgBox "No" Case Else MsgBox "Out of range" End Select End Sub
- El primer caso de este código probará el valor de la celda si es 1, 3 o 5 y devolverá «Sí» en un cuadro de mensaje.
- Y el segundo caso de este código probará el valor de la celda A1 si es 2, 4 o 6.
5. Uso de Seleccionar mayúsculas y minúsculas en una función personalizada
También puede utilizar SELECT CASE al escribir código para una función VBA .
Function udfGrade(student_marks As Integer) Dim myGrade As String Select Case student_marks Case Is < 40: myGrade = “Bad” Case 41 To 50: myGrade = “Average” Case 51 To 60: myGrade = “Good” Case 61 To 80: myGrade = “Very Good” Case 81 To 100: myGrade = “Excellent” End Select udfGrade = myGrade End Function
En la función anterior, hay cinco casillas para verificar la puntuación de los estudiantes en una celda. Los 5 casos utilizan un rango de números y devuelven el valor definido en la declaración.
6. Uso de Seleccionar caso de condiciones anidadas
También puede crear una declaración de condición anidada. Lo que intento decir es que puedes escribir código para probar múltiples condiciones con el caso seleccionado.
Imagínese si desea escribir código que pueda probar condiciones basadas en los valores de dos celdas diferentes.
Sub SelectCaseStatement() Select Case Range("A2") Case "Boy" Select Case Range("B2") Case "Commerce": MsgBox "Boy (Commerce)" Case "Science": MsgBox "Boy (Science)" End Select Case "Girl" Select Case Range("B2") Case "Commerce": MsgBox "Girl (Commerce)" Case "Science": MsgBox "Girl (Science)" End Select End Select End Sub
En el código anterior tiene tres declaraciones de selección de casos. Hay una declaración principal que verifica el valor de la celda A2 si es «Niño» o «Niña».
Y luego, en base al resultado, se ejecutan dos instrucciones más y verifican el valor de la celda B2 si es Comercio o Ciencia.
ELEGIR CASO Vs. SI ENTONCES OTRA Declaración
- Cuando desee probar varias condiciones, es fácil escribir código usando SELECT CASE en lugar de IF-THEN.
- Incluso es fácil editar y realizar cambios en una declaración SELECT CASE en comparación con IF-THEN.