Estructuras Condicionales en VBA

Toma de decisiones mediante los condicionales If...Then e If...Then...Else.

Ya sabes cómo hacerle preguntas a VBA (a través de los operadores de comparación), pero aún falta aprender a hacer un uso práctico de sus respuestas (True o False).

En la programación con macros, necesitamos un mecanismo que le permita a Excel ejecutar un bloque de código solo si se cumple una condición, e ignorarlo si no se cumple.

Es exactamente como en la vida real: realizas ciertas acciones dependiendo de una condición específica. Por ejemplo, sales a caminar si el clima es bueno, o te quedas en casa si está húmedo y frío.

Para tomar este tipo de decisiones dentro de una macro, VBA ofrece una estructura especial llamada instrucción condicional (o sentencia condicional), encabezada por la palabra clave If.

1. Estructura Condicional Simple (If...Then)

La instrucción If (Si) permite evaluar una condición lógica. Si la condición resulta ser verdadera (True), el programa ejecutará el bloque de código que esté dentro. Si la condición es falsa (False), VBA simplemente ignorará esas líneas y continuará con la ejecución del programa.

' Sintaxis General
If Condición Then
    ' Instrucciones que se ejecutan solo si es Verdadero
End If

' Ejemplo Práctico: Aumentar un bono si la nota es perfecta
Dim Nota As Integer
Nota = Range("A1").Value

If Nota = 20 Then
    Range("B1").Value = "¡Felicidades! Tienes un bono adicional."
End If

2. Estructura Condicional Doble (If...Then...Else)

En muchos casos necesitamos tomar acciones en ambas situaciones: tanto si la condición se cumple como si no. La cláusula Else (Sino) define el bloque de código alternativo que debe ejecutarse únicamente cuando la condición evaluada es falsa (False).

' Sintaxis General
If Condición Then
    ' Instrucciones si la condición es Verdadera
Else
    ' Instrucciones si la condición es Falsa
End If

' Ejemplo Práctico: Determinar estado académico
Dim Nota As Double
Nota = Range("A1").Value

If Nota >= 11 Then
    Range("B1").Value = "Aprobado"
Else
    Range("B1").Value = "Desaprobado"
End If

3. Ejercicios Prácticos de Aplicación

A continuación, resuelve los ejercicios utilizando las estructuras condicionales en VBA según corresponda.

Ejercicio 1: Asignación de Bono de Asistencia (If Simple) Sub CondicionalSimple()

Problema: Un empleado recibe un bono extraordinario de $50 si trabajó exactamente 30 días al mes. Lee los días laborados desde la celda B1. Si cumple la condición (Dias = 30), escribe el monto de 50 en la celda B2.

AB
1Días Trabajados30
2Monto Bono ($)?
Ejercicio 2: Control de Acceso por Edad (If...Else) Sub CondicionalDoble()

Problema: Una aplicación debe verificar la edad ingresada en la celda B5. Si la edad es mayor o igual a 18 años (Edad >= 18), debe escribir el texto "Permitido" en la celda B6. En caso contrario (Else), debe escribir el texto "Denegado".

AB
5Edad Registrada15
6Estado Acceso?