# IIf Function

āĻŽā§āĻ˛ā§āĻ¯āĻžā§āĻ¨āĻāĻāĻ¤ āĻāĻā§āĻ¸āĻĒā§āĻ°ā§āĻļāĻ¨ā§āĻ° āĻ˛āĻāĻŋāĻā§āĻ¯āĻžāĻ˛ āĻŽāĻžāĻ¨ā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻŦāĻ°āĻļā§āĻ˛ āĻĻā§āĻāĻāĻŋ āĻ¸āĻŽā§āĻ­āĻžāĻŦā§āĻ¯ āĻĢāĻžāĻāĻļāĻ¨ āĻĢāĻ˛āĻžāĻĢāĻ˛ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻĨāĻžāĻā§āĨ¤

### Syntax:

``````
IIf (Bool As Boolean, Variant1 As Variant, Variant2 As Variant) As Variant
``````

### Parameters:

Bool: Any expression that you want to evaluate. If the expression evaluates to True, the function returns the value of Variant1, otherwise it returns the value of Variant2.

Variant1, Variant2: Any expression, one of which will be returned as the function result, depending on the logical evaluation.

IIf evaluates both Variant1 and Variant2 even if it returns only one of them. If one of the expressions results in error, the function returns the error. For example, do not use IIF to bypass a possible division by zero result.

### Error codes:

5 Invalid procedure call

### Example:

``````
REM Returns the maximum of 3 values
Function Max (A As Double, B As Double, C, As Double) As Double
Max = IIf( A >= B, A, B)
Max = IIf( C >= Max, C, Max)
End Function
REM Bad usage of function IIf
Function Inverse(A As Double) As Double
Inverse = IIf( A = 0, 0, 1/A )
End Function
``````

If or Select Case statements

Switch function