Uso del condicional If en VBA (if, elseif, else, end if)

A partir de este tutorial, empezaremos a explorar las bondades de programar, siendo una de ellas la capacidad de hacer que el computador “tome decisiones” a través de los condicionales.

¿Qué es un Condicional?

Un condicional es una evaluación que se realiza en el flujo de la información (una o más variables) y permite discernir si se cumple o no con una condición establecida. Según la respuesta, se tomarán diferentes acciones.

¿Cómo Escribir un Condicional en VBA?

Para escribir un condicional (If en VBA), debemos evaluar una variable y dar instrucciones sobre qué hacer si se cumple la condición. Esta evaluación se realiza utilizando el comando If.

Ejemplo de Condicional If en VBA: Entradas al Cine

Imaginemos que estamos creando un sistema para vender entradas de cine, donde el precio de la entrada depende de la edad del espectador. En este caso, definimos las siguientes reglas:

  • Los niños de 12 años o menos recibirán una entrada «Preferencial».
  • Los adultos mayores de 12 años recibirán una entrada «Regular».

Para implementar estas reglas en VBA, utilizaremos una estructura condicional If que evaluará la edad ingresada en la celda B2. Si la edad es menor o igual a 12, se asignará «Preferencial» a la celda C2. De lo contrario, se asignará «Regular». Aquí tienes el código correspondiente:


Sub AsignarEntrada()
    Dim edad As Integer
    ' Leer la edad de la celda B2
    edad = Range("B2").Value

    ' Evaluar la condición
    If edad <= 12 Then
        Range("C2") = "Preferencial" ' Entrada para niños
    Else
        Range("C2") = "Regular" ' Entrada para adultos
    End If
End Sub

En este ejemplo, si el usuario ingresa un valor en la celda B2 (por ejemplo, 10), el sistema evaluará la condición:

  • Si 10 <= 12 es verdadero, la celda C2 mostrará «Preferencial».
  • Si el usuario ingresa 15, el sistema evaluará 15 <= 12, lo que es falso, y la celda C2 mostrará «Regular».

Condicionales If Anidados en VBA

A veces, es necesario evaluar una segunda condición después de la primera evaluación. Esto se denomina «Condicional Anidado». La estructura será similar a la siguiente:

Ejemplo de Condicional If Anidado en VBA

Continuando con el ejemplo de la entrada al cine, podríamos agregar una evaluación adicional. Supongamos que queremos ofrecer entradas «Preferenciales» también a personas de tercera edad (mayores de 59 años). El código podría verse así:


Sub AsignarEntradaCompleta()
    Dim edad As Integer
    edad = Range("B2").Value

    If edad <= 12 Then
        Range("C2") = "Preferencial" ' Entrada para niños
    ElseIf edad > 59 Then
        Range("C2") = "Preferencial" ' Entrada para tercera edad
    Else
        Range("C2") = "Regular" ' Entrada para adultos
    End If
End Sub

Uso de Or y And (Operadores Lógicos) en Condicionales VBA

También es posible evaluar múltiples condiciones en un mismo condicional usando los operadores lógicos And y Or.

Ejemplos de Uso de Or y And en Condicionales de VBA

Si queremos considerar un rango de edad para las entradas «Regular», podemos usar el operador And:


Sub AsignarEntradaConOperadores()
    Dim edad As Integer
    edad = Range("B2").Value

    If edad > 12 And edad < 60 Then
        Range("C2") = "Regular"
    Else
        Range("C2") = "Preferencial"
    End If
End Sub

De manera similar, usando el operador Or podemos evaluar si una entrada es «Preferencial» si la edad es menor a 13 o mayor a 59:


Sub AsignarEntradaConOr()
    Dim edad As Integer
    edad = Range("B2").Value

    If edad < 13 Or edad > 59 Then
        Range("C2") = "Preferencial"
    Else
        Range("C2") = "Regular"
    End If
End Sub

Conclusiones

Como has visto, hay diferentes formas de programar instrucciones de decisión en VBA, y cada método tiene sus ventajas. Con la práctica, mejorarás en la escritura de código más compacto y libre de errores.

¿Quieres saber más? Contáctanos…

Guía Completa sobre Variables en VBA: Aprende a Declararlas y Usarlas

¿Qué son las Variables en VBA y por qué se usan?

Las variables son elementos fundamentales en cualquier lenguaje de programación, incluyendo VBA. Permiten almacenar y manipular datos, como números, texto y estructuras más complejas. Al declarar variables adecuadamente, optimizamos el uso de memoria y mejoramos la velocidad de ejecución del código.

Analogía de la Vida Real: Imagina que estás organizando un armario. Si lo haces de manera ordenada, podrás encontrar tus prendas rápidamente y aprovechar mejor el espacio. Lo mismo ocurre con las variables en programación: al gestionarlas correctamente, optimizamos su uso y capacidad.

El buen manejo de las variables contribuye con el orden y la eficiencia del código.

El buen manejo de las variables contribuye con el orden y la eficiencia del código.

¿Qué es la Declaración de Variables en VBA?

La declaración de variables consiste en instruir al sistema para reservar un espacio de memoria según el tipo de variable que se necesita. Aunque en VBA no es obligatorio declarar variables, hacerlo previene la ralentización del programa, ya que VBA no tendrá que determinar el tipo de variable cada vez que se encuentre con una no definida.

Tipos de Variables en VBA

Las variables en VBA ocupan diferentes cantidades de memoria según su tipo. A continuación, se presentan algunos de los tipos de variables más comunes:

Tipo de Variable Denominación en VBA Espacio Ocupado (bytes) Rango de Valores Ejemplo
Booleana Boolean 2 Verdadero o Falso Answer = True
Entero Integer 2 -32,768 ↔ 32,767 Cant = 5
Doble Precisión Double 8 ±1.79769313486232 × 10^308 Pi = 3.14159265
Moneda Currency 8 -922,337,203,685,477 ↔ 922,337,203,685,477 Monto = 5.5
Texto String 1 por carácter Cualquier texto Prod = «Carro»
Variable Especial Variant Varía Varía según el tipo de datos Total = Pi * Cant

VBA asigna automáticamente la categoría Variant a las variables no declaradas. Es recomendable declarar el tipo de variable para optimizar el uso de memoria y mejorar el rendimiento.

Niveles de Variables en VBA

En VBA, las variables pueden ser públicas (Public) o privadas (Private), dependiendo de su nivel de accesibilidad:

Tipo de Variable Usada en
Privada Un mismo procedimiento (rutina o función) en un mismo módulo
Pública Todos los procedimientos de todos los módulos

Las variables privadas pueden tener el mismo nombre en procedimientos diferentes, ya que no son compartidas. Por el contrario, las variables públicas mantienen su valor activo mientras se ejecute la macro.

¿Cómo Declarar una Variable en VBA?

Para declarar una variable, sigue estos pasos:

  1. Abre el editor de comandos de VBA (puedes consultar nuestro primer tutorial sobre macros en Excel).
  2. Utiliza la instrucción Dim para declarar la variable.

Ejemplo de Declaración:

Dim pi As Double

En este caso, estamos reservando espacio para la variable pi, que almacenará un número de doble precisión.

Mostrar el Resultado: Para imprimir el valor, utiliza MsgBox:

MsgBox(pi)

Consejos para el Uso de Variables en VBA

  • Para obligar a VBA a declarar siempre las variables, usa Option Explicit al principio de cualquier módulo. Esto te ayudará a evitar errores de declaración.
  • Si olvidas declarar una variable, VBA resaltará el error, facilitando su identificación y corrección.
  • Utiliza la combinación CTRL + Espacio para acceder a un menú de variables declaradas al escribir.

Sobre los Nombres de las Variables en VBA

Elige nombres descriptivos para tus variables, ya que esto facilita la comprensión del código. Algunas reglas a seguir son:

  • El primer carácter debe ser una letra.
  • VBA no distingue entre mayúsculas y minúsculas; Var y var son la misma variable.
  • No se permiten espacios ni ciertos símbolos en los nombres.
  • El máximo número de caracteres para un nombre de variable es 255.

¿Quieres saber más? Contáctanos…