Contenido
La función `IIf` en VBA es muy similar a la operación ternaria encontrada en otros lenguajes de programación y sirve para hacer una evaluación condicional en una sola línea. La sintaxis de `IIf` es la siguiente:
IIf(expr, truepart, falsepart)
Donde:
- `expr` es la expresión que se evalúa, la condición que debe ser `True` o `False`.
- `truepart` es el valor que `IIf` retorna si `expr` es verdadero (`True`).
- `falsepart` es el valor que `IIf` retorna si `expr` es falso (`False`).
Aquí hay un ejemplo de cómo usar la función `IIf` en VBA:
Sub EjemploIIf()
Dim numero As Integer
numero = 10
' Utilizar IIf para comprobar si el número es mayor que 5
Dim resultado As String
resultado = IIf(numero > 5, "Mayor que cinco", "Cinco o menos")
' Imprimir el resultado en la ventana inmediata (Ctrl + G para verla)
Debug.Print resultado
End Sub
En este caso, `IIf` evalúa si `numero` es mayor que 5. Si esto es `True`, `resultado` será «Mayor que cinco». Si es `False`, `resultado` será «Cinco o menos».
Es importante tener en cuenta que `IIf` evalúa ambas expresiones `truepart` y `falsepart` independientemente de cuál es el resultado de la condición. Esto significa que cualquier función o procedimiento que esté en `truepart` o `falsepart` será ejecutada, aunque no corresponda al resultado de la condición. Esto puede causar efectos no deseados si las expresiones tienen efectos secundarios o consumen recursos significativos.
Si necesitas evitar este comportamiento, es mejor optar por una estructura `If…Then…Else` tradicional en lugar de `IIf`. Aquí tienes un ejemplo:
Sub EjemploIfThenElse()
Dim numero As Integer
numero = 10
Dim resultado As String
If numero > 5 Then
resultado = "Mayor que cinco"
Else
resultado = "Cinco o menos"
End If
Debug.Print resultado
End Sub