Las estructuras de control son fundamentales en cualquier lenguaje de programación, y VBA no es la excepción. En esta lección, aprenderemos a utilizar la estructura de control If...Then...Else para tomar decisiones en nuestro código.
¿Qué es If...Then...Else?
La estructura If...Then...Else permite ejecutar diferentes bloques de código basados en una condición. Esencialmente, le dice al programa: "Si esta condición es verdadera, haz esto; de lo contrario, haz aquello".
Sintaxis Básica
If condición Then
    ' Código a ejecutar si la condición es verdadera
Else
    ' Código a ejecutar si la condición es falsa
End IfEjemplo Básico
Sub EjemploIfThenElse()
    Dim numero As Integer
    numero = 10
    
    If numero > 5 Then
        MsgBox "El número es mayor que 5"
    Else
        MsgBox "El número es 5 o menor"
    End If
End SubEn este ejemplo, el mensaje "El número es mayor que 5" se mostrará porque la condición numero > 5 es verdadera.
If...Then...ElseIf...Else
Para manejar múltiples condiciones, podemos usar ElseIf:
Sintaxis
If condición1 Then
    ' Código a ejecutar si la condición1 es verdadera
ElseIf condición2 Then
    ' Código a ejecutar si la condición2 es verdadera
Else
    ' Código a ejecutar si ninguna de las condiciones anteriores es verdadera
End IfEjemplo con ElseIf
Sub EjemploIfThenElseIf()
    Dim numero As Integer
    numero = 10
    
    If numero > 15 Then
        MsgBox "El número es mayor que 15"
    ElseIf numero > 5 Then
        MsgBox "El número es mayor que 5 pero menor o igual a 15"
    Else
        MsgBox "El número es 5 o menor"
    End If
End SubEn este caso, el mensaje "El número es mayor que 5 pero menor o igual a 15" se mostrará porque la condición numero > 5 es verdadera y numero > 15 es falsa.
If...Then en una sola línea
Para condiciones simples, podemos usar una versión de una sola línea de If...Then:
Sintaxis
Ejemplo de una sola línea
Sub EjemploIfThenUnaLinea()
    Dim numero As Integer
    numero = 10
    
    If numero > 5 Then MsgBox "El número es mayor que 5"
End SubEjercicios Prácticos
Ejercicio 1: Verificar si un número es positivo, negativo o cero
Escribe un programa que verifique si un número ingresado por el usuario es positivo, negativo o cero y muestre un mensaje correspondiente.
Solución
Sub VerificarNumero()
    Dim numero As Integer
    numero = InputBox("Ingrese un número:")
    
    If numero > 0 Then
        MsgBox "El número es positivo"
    ElseIf numero < 0 Then
        MsgBox "El número es negativo"
    Else
        MsgBox "El número es cero"
    End If
End SubEjercicio 2: Calcular el descuento basado en la cantidad comprada
Escribe un programa que calcule el descuento basado en la cantidad comprada. Si la cantidad es mayor a 100, el descuento es del 20%. Si la cantidad es mayor a 50 pero menor o igual a 100, el descuento es del 10%. Si la cantidad es 50 o menor, no hay descuento.
Solución
Sub CalcularDescuento()
    Dim cantidad As Integer
    Dim descuento As Double
    
    cantidad = InputBox("Ingrese la cantidad comprada:")
    
    If cantidad > 100 Then
        descuento = 0.2
    ElseIf cantidad > 50 Then
        descuento = 0.1
    Else
        descuento = 0
    End If
    
    MsgBox "El descuento es del " & (descuento * 100) & "%"
End SubErrores Comunes y Consejos
- Olvidar el 
End If: Siempre asegúrate de cerrar la estructuraIf...Then...ElseconEnd If. - Condiciones Incorrectas: Verifica que las condiciones sean correctas y que cubran todos los casos posibles.
 - Uso de 
ElseIf: UtilizaElseIfpara manejar múltiples condiciones en lugar de anidar múltiplesIf...Then. 
Conclusión
La estructura If...Then...Else es una herramienta poderosa para tomar decisiones en tu código VBA. Con esta lección, ahora deberías ser capaz de implementar condiciones simples y múltiples en tus programas. En la próxima lección, exploraremos los bucles en VBA, que te permitirán repetir bloques de código de manera eficiente.
Curso de VBA (Visual Basic for Applications)
Módulo 1: Introducción a VBA
Módulo 2: Conceptos Básicos de VBA
- Variables y Tipos de Datos
 - Operadores en VBA
 - Estructuras de Control: If...Then...Else
 - Bucles: For, While, Do Until
 - Trabajando con Arrays
 
Módulo 3: Trabajando con Objetos de Excel
- Entendiendo el Modelo de Objetos de Excel
 - Trabajando con Libros y Hojas de Cálculo
 - Manipulando Celdas y Rangos
 - Usando el Objeto Range
 - Formateando Celdas con VBA
 
Módulo 4: Programación Avanzada en VBA
- Creación y Uso de Funciones
 - Manejo de Errores en VBA
 - Técnicas de Depuración
 - Trabajando con UserForms
 - Programación Basada en Eventos
 
Módulo 5: Interacción con Otras Aplicaciones
- Automatizando Word con VBA
 - Automatizando Outlook con VBA
 - Accediendo a Bases de Datos con VBA
 - Usando VBA para Controlar PowerPoint
 
Módulo 6: Mejores Prácticas y Optimización
- Escribiendo Código VBA Eficiente
 - Técnicas de Refactorización de Código
 - Documentando tu Código
 - Control de Versiones para Proyectos VBA
 
