La instrucción Select Case en VBA es uno de los métodos más fáciles y utilizados en Excel cuando se trata de asignar y clasificar en función de una única variable con varios posibles resultados. En este tutorial vamos a ver su sintaxis, sus parámetros y cómo usarla con varios ejemplos muy sencillos.
Sintaxis
La sintaxis de la instrucción Select Case en VBA es muy sencilla pero hay que saber cómo usarla para sacarle verdadero partido. En el siguiente recorte de código VBA puedes ver cómo es la sintaxis.
Select Case mi_expresion Case mi_expresion_1 'código para expresion_1 Case mi_expresion_2 'código para expresion_2 '... Case mi_expresion_n 'código para expresion_n Case Else 'código para cuando no hay coincidencias End Select
Donde:
- mi_expresión: es una variable que queremos evaluar. Puede ser numérica o de tipo texto y será contra la que evaluemos mi_expresion_1, mi_expresion_2…
- mi_expresion_1,2…n: es un valor o conjunto de valores numéricos o de texto contra los que se evaluará mi_expresion. En caso de evaluarse como verdadera se ejecutará el código… sino, pasará a evaluar la siguiente mi_expresion_n.
- Case Else: este valor es opcional y lo usaremos para cuando no hayamos conseguido ninguna equivalencia con mi_expresión y queramos ejecutar algún código.
Ejemplos
Ejemplo1
En el siguiente ejemplo vamos a ver el caso más sencillo de Selec Case en VBA. Las condiciones que se evalúan tienen que ser iguales a la expresión inicial. En este ejemplo se quiere evaluar la variable Nombre. En función del Nombre se asignará un valor de color de fondo u otro.
Select Case Nombre Case "Enrique" color_fondo = vbYellow Case "Juan" color_fondo = vbRed Case Else color_fondo = vbWhite End Select
Ejemplo 2
En este ejemplo se evalúa la variable Edad y en función de su valor (dado por intervalos) se da un atributo a la variable tipo_edad.
Select Case Edad Case 1 To 14 tipo_edad = "niño" Case 15 To 20 tipo_edad = "adolescente" Case Else tipo_edad = "adulto" End Select
Ejemplo 3
En este ejemplo, en función de la primera letra del ID (que es la variable que vamos a evaluar) asignaremos un valor a la variable tipo para clasificar el Primer_numero_ID.
Select Case Primer_numero_ID Case 1, 2, 3 tipo = "grupo1" Case 4, 5, 6 tipo = "grupo2" Case Else tipo = "grupo3" End Select
Ejemplo 4
Por último, en este ejemplo, para evaluar la variable Altura, las condiciones que se utilizan son expresiones aritméticas.
Select Case Altura Case Is < 140 tipo = "bajito" Case Is < 170 tipo = "mediano" Case Else tipo = "alto" End Select
Descargable
En el siguiente enlace podéis descargar un libro de Excel con estos ejemplos para que podáis trabajar aún más fácilmente:
Ejemplos de código VBA de Select Case