Met de instructie If...Then...Else kunt u een specifieke instructie of een specifiek instructieblok uitvoeren, afhankelijk van de waarde van een voorwaarde. U kunt een instructie If...Then...Else op elk gewenst aantal niveaus nesten. Omwille van de leesbaarheid is het vaak echter beter om een instructie Select Case te gebruiken in plaats van meerdere niveaus met geneste instructies If...Then...Else.
U gebruikt de eenregelige syntaxis van de instructie If...Then...Else als u slechts ΘΘn instructie wilt uitvoeren wanneer een voorwaarde True is. In het volgende voorbeeld wordt een eenregelige syntaxis weergegeven, waarbij het sleutelwoord Else wordt weggelaten:
Sub FixDate()
MyDate = #2/13/95#
If MyDate < Now Then MyDate = Now
End Sub
U gebruikt de syntaxis voor meerdere regels als u meerdere regels programmacode wilt uitvoeren. Deze syntaxis bevat de instructie End If, wat u in het voorbeeld kunt zien:
Sub AlertUser(value as Long)
If value = 0 Then
AlertLabel.ForeColor = "Rood"
AlertLabel.Font.Bold = True
AlertLabel.Font.Italic = True
End If
End Sub
Gebruik de instructie If...Then...Else als u twee blokken instructies wilt uitvoeren: ΘΘn blok wordt uitgevoerd als de voorwaarde True is, het andere blok als de voorwaarde False is.
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
U kunt instructies ElseIf aan een instructie If...Then...Else toevoegen als u wilt controleren of een tweede voorwaarde False is. De volgende functieprocedure berekent bijvoorbeeld een bonus op basis van het type baan. De instructie die na de instructie Else komt, wordt uitgevoerd als de voorwaarden in alle instructies If en ElseIf de waarde False hebben.
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