VBA Switch Case - ¿Cómo utilizar la declaración de cambio de caso en Excel VBA?

Tabla de contenido:

Anonim

Caja de conmutador Excel VBA

En VBA Switch Case, cuando necesitamos verificar o analizar lógicamente una condición y ejecutar las diferentes líneas de códigos basadas en la misma, utilizamos la instrucción condicional IF-Else. Del mismo modo, hay una declaración más de Switch Case que se conoce más ampliamente como la instrucción Select Case que puede verificar o analizar las múltiples condiciones lógicas y ejecutar las líneas de código basadas en ellas. Cuando tiene tres o más condiciones lógicas para verificar, se recomienda que use Seleccionar caso o Cambiar caso en lugar de una instrucción IF-Else convencional. Porque hace que el Código VBA sea más rápido y más comprensible en lugar de las declaraciones IF-Else anidadas en tales casos.

Cambiar caso / Seleccionar caso

Cambiar caso o Seleccionar caso en VBA funciona en líneas similares a las de las declaraciones IF-Else. Comprueba las múltiples expresiones lógicas / condicionales contra diferentes valores (casos). Tan pronto como cualquiera de los casos coincida con la condición (se vuelve verdadera para la condición dada), el sistema ejecuta ese caso y el resto de los casos se ignoran para ejecutarse. En el caso, hay dos casos que son verdaderos para la condición dada, solo el primero se ejecutará con la ley de precedencia.

La sintaxis para Switch Case / Select Case es la siguiente:

Select Case
Case value_1
Code to Execute when Expression = value_1
Case value_2
Code to Execute when Expression = value_2
Case value_3
Code to Execute when Expression = value_3
.
.
.
Case value_n
Code to Execute when Expression = value_n
Case Else
Code to Execute when no case value meets the expression/logical test.
End Select

Dónde,

Expresión: Esta es una expresión para la que queríamos verificar o analizar usando diferentes valores de casos.

value_1, value_2, value_3, … son las condiciones lógicas que se deben verificar para la expresión dada.

¿Cómo usar la declaración de cambio de caso en Excel VBA?

Aprenderemos cómo usar la declaración de cambio de caso en Excel usando el código VBA.

Puede descargar esta plantilla Excel de VBA Switch Case aquí - Plantilla VBA Switch Case Excel

VBA Switch Case - Ejemplo # 1

Verificaremos si el número dado es menor que 100 o mayor que 100. Para esto, siga los pasos a continuación:

Paso 1: inserte un nuevo módulo dentro del Editor de Visual Basic (VBE). Haga clic en la pestaña Insertar > seleccione Módulo.

Paso 2: defina un nuevo subprocedimiento dentro del módulo insertado que pueda contener su macro.

Código:

 Sub switch_case_example1 () End Sub 

Paso 3: defina una nueva variable denominada usrInpt que pueda contener el valor del usuario. Utilice la función InputBox de VBA para crear un cuadro de entrada que tome los valores del usuario a través de la variable usrInpt .

Código:

 Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Ingrese su valor") End Sub 

Paso 4: utilice la instrucción Select Case y proporcione el valor proporcionado por el usuario a través de la variable usrInpt . Esta es la expresión que debemos verificar con condiciones lógicas.

Código:

 Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Ingrese su valor") Seleccione el caso usrInpt End Sub 

Paso 5: Ingrese la primera prueba lógica que se verificará en la declaración del caso de la siguiente manera.

Código:

 Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Ingrese su valor") Seleccione el caso usrInpt El caso es <100 End Sub 

Paso 6: Use la función MsgBox para agregar un mensaje de salida si Case Is <100 es verdadero.

Código:

 Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Ingrese su valor") Seleccione el caso usrInpt El caso es <100 MsgBox "El número proporcionado es menor que 100" End Sub 


Paso 7: Ahora, debemos proporcionar una instrucción ejecutable cuando el valor de usrInpt sea ​​mayor que 100. Agregue un caso y MsgBox para lograr esto.

Código:

 Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Ingrese su valor") Seleccione el caso usrInpt El caso es 100 MsgBox "El número proporcionado es mayor que 100" End Sub 

Paso 8: ¿Qué sucede si el valor proporcionado por el usuario es exactamente el 100? No tenemos ningún caso agregado para eso. Agreguemos el que le da al usuario un mensaje de que el valor que ingresó es 100.

Código:

 Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Ingrese su valor") Seleccione el caso usrInpt El caso es 100 MsgBox "El número proporcionado es mayor que 100" El caso es = 100 MsgBox "El número proporcionado es 100" End Sub 

Paso 9: Necesitamos finalizar la declaración de Seleccionar caso. Use End Select para finalizar el ciclo creado.

Código:

 Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Ingrese su valor") Seleccione el caso usrInpt El caso es 100 MsgBox "El número proporcionado es mayor que 100" El caso es = 100 MsgBox "El número proporcionado es 100" Fin Seleccione Fin Sub 

Paso 10: Ahora, ejecuta este código presionando el botón Ejecutar o F5. Aparecerá un nuevo cuadro emergente pidiendo que se verifique el valor. Ingresaré un valor como 110 y presionar el botón OK en el cuadro de entrada. Como el número que ingreso es mayor que 100, tan pronto como haga clic en Aceptar, aparecerá un nuevo mensaje en mi pantalla que dice: "El número proporcionado es mayor que 100".

VBA Switch Case - Ejemplo # 2

Supongamos que queremos capturar la calificación de los estudiantes en función de sus calificaciones. Vea los pasos a continuación sobre cómo podemos lograr esto.

Paso 1: defina un nuevo subprocedimiento denominado switch_case_example2 .

Código:

 Sub switch_case_example2 () End Sub 

Paso 2: defina dos nuevas variables: las marcas como un entero y las calificaciones como una cadena utilizando la instrucción Dim en el subprocedimiento creado.

Código:

 Sub switch_case_example2 () Marcas atenuadas como enteras Atenuación graduadas como String End Sub 

Paso 3: Use la función VBA InputBox a través de la cual el usuario puede ingresar el valor para las marcas variables.

Código:

 Sub switch_case_example2 () Marcas atenuadas como enteras Atenuación graduadas como marcas de cadena = InputBox ("Ingrese las marcas") End Sub 

Paso 4: utilice la instrucción Seleccionar caso y proporcione las marcas de variable como una expresión para verificar.

Código:

 Sub switch_case_example2 () Marcas atenuadas como números enteros Atenuación graduadas como marcas de cadena = InputBox ("Ingrese las marcas") Seleccione marcas de mayúsculas y minúsculas 

Dado que queremos asignar las calificaciones a los estudiantes en función de las calificaciones que ingresan, primero debemos definir las calificaciones.

Paso 5: Use la declaración del caso para verificar si las calificaciones son menores a 35. Si es así, asigne el valor como "F" a las calificaciones variables.

Código:

 Sub switch_case_example2 () Marcas atenuadas como números enteros Atenuadores calificaciones como marcas de cadena = InputBox ("Ingrese las marcas") Seleccione marcas de mayúsculas y minúsculas Case Is <35 grados = "F" End Sub 

Paso 6: Si las marcas están entre 35 y 45, asigne el valor como "D" a las calificaciones variables.

Código:

 Sub switch_case_example2 () Marcas atenuadas como enteras Atenuación graduadas como marcas de cadena = InputBox ("Ingrese las marcas") Seleccione marcas de mayúsculas y minúsculas Caso es <35 grados = "F" Caso 35 a 45 grados = "D" Fin Sub 

Paso 7: Si las marcas ingresadas están entre 46 y 55, el valor "C" debe asignarse a grados variables.

Código:

 Sub switch_case_example2 () Marcas atenuadas como números enteros Atenuadores como marcas de cadena = InputBox ("Ingrese las marcas") Seleccione marcas de caso Caso es <35 grados = "F" Caso 35 a 45 grados = "D" Caso 46 a 55 grados = "C" End Sub 

Paso 8: Cuando las marcas están en el rango de 56 a 65, el valor asignado a las calificaciones variables debe ser "B".

Código:

 Sub switch_case_example2 () Marcas atenuadas como números enteros Atenuadores como marcas de cadena = InputBox ("Ingrese las marcas") Seleccione marcas de caso Caso es <35 grados = "F" Caso 35 a 45 grados = "D" Caso 46 a 55 grados = "C" Caso 56 a 65 grados = "B" Fin Sub 

Paso 9: Para las calificaciones entre 66 y 75, la calificación debe ser "A".

Código:

 Sub switch_case_example2 () Marcas atenuadas como números enteros Atenuadores como marcas de cadena = InputBox ("Ingrese las marcas") Seleccione marcas de caso Caso es <35 grados = "F" Caso 35 a 45 grados = "D" Caso 46 a 55 grados = "C" Caso 56 a 65 grados = "B" Caso 66 a 75 grados = "A" Fin Sub 

Paso 10: Si las marcas ingresadas son más de 75, la variable de calificaciones debería tener asignado un valor como "A +"

Código:

 Sub switch_case_example2 () Marcas atenuadas como enteras Atenuación graduadas como marcas de cadena = InputBox ("Ingrese las marcas") Seleccione marcas de mayúsculas y minúsculas Caso es 75 calificaciones = "A +" End Sub 

Paso 11: Use Fin Seleccione el cierre del bucle Seleccionar caso.

Código:

 Sub switch_case_example2 () Marcas atenuadas como enteras Atenuación graduadas como marcas de cadena = InputBox ("Ingrese las marcas") Seleccione marcas de mayúsculas y minúsculas Caso es 75 calificaciones = "A +" Fin Seleccione Fin Fin Sub 

Paso 12: Ahora, debemos verificar cuál es la calificación asociada con las calificaciones que un estudiante ha ingresado. Para lograr eso, use la función MsgBox de tal manera que denote las calificaciones alcanzadas dentro de un cuadro de mensaje.

Código:

 Sub switch_case_example2 () Marcas atenuadas como números enteros Atenuadores como marcas de cadena = InputBox ("Ingrese las marcas") Seleccione marcas de mayúsculas y minúsculas Caso es 75 calificaciones = "A +" Fin Seleccione MsgBox "Calificación obtenida es:" & grados Fin Sub 

Paso 13: ejecute este código presionando el botón F5 o Ejecutar y puede ver un cuadro de entrada de VBA que solicita un valor de marca. Ingresaré las marcas como 72 y presionaré el botón Aceptar presente en el cuadro de entrada. Tan pronto como presione el botón Aceptar dentro del cuadro de entrada, recibiré un cuadro de mensaje que indica las calificaciones asociadas con las marcas ingresadas.

Así es como podemos usar la declaración Cambiar / Seleccionar caso dentro de VBA.

Cosas para recordar

  • Switch case es en realidad un sinónimo de la instrucción Select Case en VBA. Se le ha llamado así porque con la ayuda de esta declaración podemos cambiar entre las diferentes salidas al mismo tiempo.
  • Esta declaración se puede usar como una alternativa al bucle IF-Else siempre que tengamos tres o más condiciones para verificar.
  • Está bien si no usa ELSE Case en la instrucción Select Case. Sin embargo, en ese caso, debe asegurarse de que al menos una condición sea verdadera en todo el ciclo.

Artículos recomendados

Esta es una guía de VBA Switch Case. Aquí discutimos cómo usar la declaración de cambio de caso en Excel VBA junto con ejemplos prácticos y una plantilla de Excel descargable. También puede consultar nuestros otros artículos sugeridos:

  1. Colección VBA (Ejemplos)
  2. Declaraciones VBA IF | Plantillas Excel
  3. ¿Cómo utilizar la función de clasificación de Excel VBA?
  4. VBA While Loop (Ejemplos con plantilla de Excel)
  5. VBA Environ