If...Then...Else, instructie

       

Voert een groep instructies voorwaardelijk uit, afhankelijk van de waarde van een expressie.

Syntaxis

If voorwaarde Then [instructies] [Else andersinstructies]

U kunt ook de volgende syntaxis in blokvorm gebruiken:

If voorwaarde Then
[instructies]

[ElseIf voorwaarde-n Then
[andersindieninstructies] ...

[Else
[andersinstructies]]

End If

De instructie If...Then...Else heeft de volgende argumenten:

Onderdeel Beschrijving
voorwaarde Vereist. Een of meer van de volgende twee soorten expressie:
  Een numerieke expressie of reeksexpressie die de waarde True of False heeft. Als voorwaarde Null is, wordt voorwaarde behandeld als zijnde False.
  Een expressie van de vorm TypeOf objectnaam Is objecttype. De objectnaam is een willekeurige verwijzing naar een object en objecttype is een willekeurig geldig objecttype. De expressie is True als objectnaam van het objecttype is dat door objecttype is opgegeven, anders is de expressie False.
instructies Optioneel in blokvorm; vereist in eenregelige syntaxis als er geen Else voorkomt. Een of meer instructies die worden gescheiden door dubbele punten. Deze instructies worden uitgevoerd als voorwaarde True is.
Voorwaarde-n Optioneel. Hiervoor geldt hetzelfde als voor voorwaarde.
Andersindieninstructies Optioneel. Een of meer instructies die worden uitgevoerd als de bijbehorende voorwaarde-n True is.
andersinstructies Optioneel. Een of meer instructies die worden uitgevoerd als geen van de voorgaande voorwaarde- of voorwaarde-n-expressies True is.

Notities

U kunt de eenregelige syntaxis (de eerste genoemde syntaxis) gebruiken voor korte, simpele tests. De blokvorm (tweede genoemde syntaxis) geeft echter meer structuur en flexibiliteit dan de eenregelige vorm en het is meestal gemakkelijker deze te lezen, te onderhouden en fouten op te sporen.

Opmerking   Met de eenregelige vorm is het mogelijk meerdere instructies te laten uitvoeren als resultaat van een If...Then-beslissing. Alle instructies moeten op dezelfde regel voorkomen en worden gescheiden door dubbele punten, zoals in de volgende instructie:

If A > 10 Then A = A + 1 : B = B + A : C = C + B

Een instructie If in blokvorm moet de eerste instructie op een regel zijn. De onderdelen Else, ElseIf en End If kunnen alleen worden voorafgegaan door een regelnummer of een regelnaam. Het blok If moet worden afgesloten door een instructie End If.

Als u wilt bepalen of een instructie al dan niet een blok If is, kunt u controleren wat er volgt op het sleutelwoord Then. De instructie wordt behandeld als een eenregelige instructie If als er iets anders dan een opmerking voorkomt op dezelfde regel na Then.

Else en ElseIf zijn beide optioneel. U kunt een onbeperkt aantal ElseIf-zinnen in een blok If opnemen, maar deze kunnen niet na een Else-zin voorkomen. Instructies If in blokvorm kunnen worden genest. Dit betekent dat een instructie If zich binnen een andere instructie If bevindt.

Wanneer een instructie If in blokvorm wordt uitgevoerd (tweede syntaxis), wordt voorwaarde geδvalueerd. Als voorwaarde True is, worden de instructies die volgen op Then uitgevoerd. Als voorwaarde False is, wordt elke voorwaarde ElseIf (indien aanwezig) beurtelings geδvalueerd. Zodra een voorwaarde wordt gevonden die True is, worden de instructies uitgevoerd die onmiddellijk volgen op de bijbehorende Then. Als geen van de voorwaarden ElseIf True zijn (of als er geen ElseIf-zinnen zijn), worden de instructies uitgevoerd die volgen op Else. Nadat de instructies die volgen op Then of Else zijn uitgevoerd, gaat de uitvoering verder met de instructie die volgt op End If.

Tip Select Case Wanneer een enkele expressie moet worden geδvalueerd die verschillende mogelijke acties bevat, kunt u beter Select Case gebruiken. TypeOf objectnaam Is objecttype kan echter niet worden gebruikt met de instructie Select Case.

Opmerking   TypeOf kan niet met andere harde gegevenstypen, zoals Long, Integer, enzovoort, worden gebruikt dan met Object.