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.
Sintaxis básica
IIf(expr, truepart, falsepart)
- 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).
Ejemplo
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