Usar instrucciones If…Then…Else
Puede usar la instrucción If...Then...Else para ejecutar una instrucción específica o un bloque de instrucciones, en función del valor de una condición. Las instrucciones If...Then...Else se pueden anidar en tantos niveles como sea necesario.
Sin embargo, para mejor legibilidad, puede que quiera una instrucción Select Case en lugar de varios niveles de instrucciones If...Then...Else anidadas.
Ejecución de instrucciones si una condición es verdadera
Para ejecutar sólo una instrucción cuando una condición es True, use la sintaxis de una sola línea de la instrucción If...Then...Else. En el ejemplo siguiente se muestra la sintaxis de una sola línea, omitiendo la palabra claveElse.
Sub FixDate()
myDate = #2/13/95#
If myDate < Now Then myDate = Now
End Sub
Para ejecutar más de una línea de código, debe usar la sintaxis de varias líneas. Esta sintaxis incluye la instrucción End If, como se muestra en el siguiente ejemplo.
Sub AlertUser(value as Long)
If value = 0 Then
AlertLabel.ForeColor = "Red"
AlertLabel.Font.Bold = True
AlertLabel.Font.Italic = True
End If
End Sub
La ejecución de determinadas instrucciones si una condición es True y la ejecución de otras si es False
Use una instrucción If...Then...Else para definir dos bloques de instrucciones ejecutables: un bloque se ejecuta si la condición es True, el otro bloque se ejecuta si la condición es False.
Sub AlertUser(value as Long)
If value = 0 Then
AlertLabel.ForeColor = vbRed
AlertLabel.Font.Bold = True
AlertLabel.Font.Italic = True
Else
AlertLabel.Forecolor = vbBlack
AlertLabel.Font.Bold = False
AlertLabel.Font.Italic = False
End If
End Sub
Prueba de una segunda condición si la primera condición es False
Puede agregar instrucciones ElseIf a una instrucción If...Then...Else para probar una segunda condición si la primera condición es False. Por ejemplo, el siguiente procedimiento de función calcula una bonificación en función de la clasificación del trabajo. La instrucción que sigue a la instrucción Else se ejecuta si las condiciones en todas las instrucciones If y ElseIf son False.
Function Bonus(performance, salary)
If performance = 1 Then
Bonus = salary * 0.1
ElseIf performance = 2 Then
Bonus = salary * 0.09
ElseIf performance = 3 Then
Bonus = salary * 0.07
Else
Bonus = 0
End If
End Function
Vea también
Soporte técnico y comentarios
¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.