La declaración If-Then en VBA

En ocasiones necesitamos ejecutar algunas líneas de código de nuestra macro solamente cuando alguna condición se haya cumplido. La declaración If-Then nos permite validar una condición para tomar una decisión adecuada.

La sentencia If-Then en VBA es la más básica de todas las declaraciones de control de flujo que son  aquellas declaraciones que nos permiten tomar decisiones en base a una condición. Esta declaración la podemos traducir como Si-Entonces y la utilizaremos en situaciones donde necesitamos realizar la siguiente evaluación: Si se cumple la condición Entonces haz esto.

Ejemplo de la declaración If-Then

Para probar el funcionamiento de la declaración If-Then inserta un botón de comando (Control ActiveX) en una hoja de Excel y haz doble clic sobre él para colocar el siguiente código:

La declaración If Then en VBA

  • En el primer paso se hace la declaración de las variables que utilizaré en el resto del código.
  • En el segundo paso asigno el valor de la celda A1 a la variable calificación.
  • El tercer paso contiene la declaración If-Then y que prueba Si el valor de la variable calificación es mayor o igual a 60. En caso de ser verdadero Entonces se asigna el valor “Aprobado” a la variable resultado.
  • El último paso es asignar el valor de la variable resultado a la celda B2.

Ahora observa el resultado al ejecutar esta macro.

Sentencia If Then Else en VBA

La declaración If-Then-Else

Parece que todo funciona muy bien en el código anterior pero aún lo podemos mejorar agregando la declaración Else de manera que tengamos una declaración de la forma If-Then-Else. Esta variante nos permite hacer la siguiente evaluación: Si se cumple la condición Entonces haz esto De lo contrario haz otra cosa.

La declaración Else en VBA nos permite indicar otro bloque de instrucciones que se deben ejecutar en caso de que la condición sea falsa. De esta manera podemos tomar una acción determinada en caso de que la condición se cumpla o en caso de que no se cumpla. Ahora modificaré el ejemplo anterior para asegurarme de que en caso de que la condición de calificación mayor o igual a 60 no se cumpla se despliegue el resultado “reprobado”. Observa el siguiente código.

La instrucción If Then Else en VBA

En el tercer paso puedes observar la declaración If-Then-Else. Ahora observa el efecto de este cambio al momento de ejecutar el código:

Ejemplo de If Then Else en VBA

Por último quiero que observes que en este segundo ejemplo la declaración If-Then-Else termina con la declaración End If. Siempre que utilicemos la declaración If-Then o la declaración If-Then-Else debemos terminar con End If.

La única ocasión donde no se termina con End If es cuando la declaración If-Then se puede colocar en una sola línea como es el caso del primer ejemplo de este artículo.

Artículos relacionados
Controles ActiveX en Excel