Utilizar instrucciones If...Then...Else

Microsoft VBA

Utilizar instrucciones If...Then...Else

   

Se puede usar la instrucción If...Then...Else para ejecutar una instrucción o bloque de instrucciones determinadas, dependiendo del valor de una condición. Las instrucciones If...Then...Else se pueden anidar en tantos niveles como sea necesario. Sin embargo, para hacer más legible el código es aconsejable utilizar una instrucción Select Case en vez de recurrir a múltiples niveles de instrucciones If...Then...Else anidadas.

Ejecutar una sola instrucción cuando una condición es True

Para ejecutar una sola instrucción cuando una condición es True, se puede usar la sintaxis de línea única de la instrucción If...Then...Else. El siguiente ejemplo muestra la sintaxis de línea única, en la que se omite el uso de la palabra clave Else:

Sub FijarFecha()
    miFecha = #13/2/95#
    If miFecha < Now Then miFecha = Now
End Sub

Para ejecutar más de una línea de código, es preciso utilizar la sintaxis de múltiples líneas. Esta sintaxis incluye la instrucción End If, tal y como muestra el siguiente ejemplo:

Sub AvisoUsuario(valor as Long)
    If valor = 0 Then
        Aviso.ForeColor = "Red"
        Aviso.Font.Bold = True
        Aviso.Font.Italic = True
    End If
End Sub

Ejecutar unas instrucciones determinadas si una condición es True y ejecutar otras si es False

Use una instrucción If...Then...Else para definir dos bloques de instrucciones ejecutables: un bloque que se ejecutará cuando la condición es True y el otro que se ejecutará si la condición es False.

Sub AvisoUsuario(valor as Long)
    If valor = 0 Then
        Aviso.ForeColor = vbRed
        Aviso.Font.Bold = True
        Aviso.Font.Italic = True
    Else
        Aviso.Forecolor = vbBlack
        Aviso.Font.Bold = False
        Aviso.Font.Italic = False
    End If
End Sub

Comprobar una segunda condición si la primera condición es False

Se pueden añadir instrucciones ElseIf a una instrucción If...Then...Else para comprobar una segunda condición si la primera es False. Por ejemplo, el siguiente procedimiento función calcula una bonificación salarial dependiendo de la clasificación del trabajador. La instrucción que sigue a la instrucción Else sólo se ejecuta cuando las condiciones de todas las restantes instrucciones If y ElseIf son False.

Function Bonificación(rendimiento, salario)
    If rendimiento = 1 Then
        Bonificación = salario * 0.1
    ElseIf rendimiento = 2 Then
        Bonificación= salario * 0.09
    ElseIf rendimiento = 3 Then
        Bonificación = salario * 0.07
    Else
        Bonificación = 0
    End If
End Function