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.