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 If

Ejemplo 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 Sub

En 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 If

Ejemplo 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 Sub

En 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

If condición Then acción

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 Sub

Ejercicios 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 Sub

Ejercicio 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 Sub

Errores Comunes y Consejos

  1. Olvidar el End If: Siempre asegúrate de cerrar la estructura If...Then...Else con End If.
  2. Condiciones Incorrectas: Verifica que las condiciones sean correctas y que cubran todos los casos posibles.
  3. Uso de ElseIf: Utiliza ElseIf para manejar múltiples condiciones en lugar de anidar múltiples If...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.

© Copyright 2024. Todos los derechos reservados