Word-macro’s (6): Een wissel: de IF-functie

3
88
Dit artikel is deel 6 van 6 in het DiskIdee dossier Macro's in Microsoft Word
DossiernavigatieWord-macro’s (5): Creatief met Tupperware (= variabelen)

In het leven moet je elke dag keuzes maken en in Word-macro’s is dat niet anders. De IF-functie maakt het wel gemakkelijker.
mac6_wissel
Bij het schrijven van programmacode – tenslotte is een macro een programma – komt het regelmatig voor dat je een keuze moet maken. Stel dat je een brief wil schrijven, waarin de naam ingevuld moet worden. In les 3 van deze Word-macrocursus leerde je dat je die naam kan vragen door de functie Inputbox() te gebruiken. Deze functie opent een venstertje waarin je de naam van de persoon kunt invullen.
Alleen moet nadien in het briefhoofd staan: "Mijnheer Jan Janssens" en wat verder "Geachte heer,". Voor een dame wordt dat natuurlijk "Mevrouw Eva Peters" en "Geachte mevrouw,".
Je kunt dat vragen door telkens een Inputbox() te openen, maar het is duidelijk dat er heel wat woorden zo kunnen veranderen afhankelijk van het geslacht. Is het dan niet logischer gewoon te vragen naar het geslacht van betrokkene, en dan te besluiten: ALS het een man is, moet het "Mijnheer" en "heer" zijn, ANDERS is het "Mevrouw" en "mevrouw"? Zo komen we tot de instructie ALS, of in het Engels, de instructie IF.

De instructie IF
Je zult al opgemerkt hebben dat we hier niet over de functie IF spreken, maar over de instructie IF. Er staan dan ook geen haakjes achter, zoals bij de functie Inputbox(). Echte programmeurs gaan weer steigeren wanneer ik zeg "trek je daar verder maar niets van aan" en zullen met tientallen verschillen komen aandraven, maar voor de correctheid zullen we verder wel over instructie spreken.
Zoals de naam het al zegt, reageert deze instructie op een voorwaarde: ALS iets waar is, DAN doe je dit of dat. Die voorwaarde kan zowat alles zijn: een getal (je leeftijd: ALS die kleiner is dan 18, DAN mag je niet ..", een woord (je geslacht: ALS je een man bent, DAN is het mijnheer…", een tijd (het tijdstip van de dag: ALS het ochtend is, DAN zeg je "goedemorgen"..).

Voorwaarde
Een fout die in het begin vaak gemaakt wordt, is een slechte formulering van de voorwaarde. Bij een correcte voorwaarde moet je altijd kunnen antwoorden met "ja, dat is waar" of "nee, dat is niet waar". Gewoon "leeftijd" is geen voorwaarde, maar "de leeftijd moet groter zijn dan 18" is er wel een. Zo is ook "geslacht" geen voorwaarde, maar "als geslacht werd mannelijk ingevuld" is er wel een. Daarom zal in de voorwaarde altijd een vergelijkingsteken staan zoals een gelijkheid ( = ), een kleiner dan ( < ), een groter dan ( > ), is verschillend van ( <>). Ook kleiner-of-gelijk-aan ( <= ) en groter-of-gelijk-aan (>= ) kan je gebruiken.
Enkele voorbeeldjes van een voorwaarde:

IF leeftijd < 18 THEN
IF geslacht = "M" THEN

Let ook op het woordje THEN na de voorwaarde!
We nemen hier wel aan dat je voordien de leeftijd en het geslacht gevraagd hebt, bijvoorbeeld met een Inputbox().

Indien waar…
De volgende regels van de instructie IF zeggen dan wat er moet gebeuren indien aan de voorwaarde voldaan is. Dit noemen we de "tak indien waar". Dat mogen gerust meerdere regels zijn.
Soms ga je ook willen zeggen wat er moet gebeuren wanneer er niet voldaan is aan de voorwaarde, in andere gevallen is dat overbodig. Wanneer je bijvoorbeeld stelt:

ALS het regent, DAN moet je een paraplu meenemen.

Hier hoef je niet te zeggen ANDERS laat je die paraplu thuis, wat zou je er anders mee doen. Maar als je zegt:

"ALS het koud is, DAN doe je een warme trui aan"

daar kan je wel aan toevoegen: "ANDERS trek je een licht hemdje aan", zoniet loop je het risico dat de man in naakt bovenlijf rondloopt.

1
2
Vorig artikelPodcast 12: Dopplerradio podcast-aggregator en commercialisering podcasting
Volgend artikelCompacte en gebruiksvriendelijke 5.1 megapixel camera
René Paulus
René Paulus is medewerker van Diskidee.

3 REACTIES

  1. Beste Shahab,
    misschien komt dat wel, maar met de nieuwe Office wil ik eerst checken of alles wat ik schreef nog wel klopt. Makro\’s zijn namelijk ideale vervoermiddelen voor virussen, en omdat ze daar nogal wat beschermingen tegen inbouwen zou het kunnen dat sommige delen niet meer werken. Nog wat geduld dus.

  2. Beste macro expert, mocht je het bovenstaande commentaar niet begrijpen, heb ik hier een gecorrigieerde versie .
    Alvast bedankt voor het uitleg van macro in word. Ik heb wel wat geleerd. Ik vroeg me af of je ook een uitleg hebt over de macro in Excel met uiteraad verschillende sheets met grafieken en tabbelen en dit te koppelen naar een word document…ik hoor het graag van je. Nogmaals bedankt

  3. Beste macro expert,

    Alvast bedankt voor de uitleg van macro in word. Ik heb wel wat geleerd. Ik vroeg me af of je ook een uitleg heb over de macro in Excel met uiteraad spreatsheets en het koppelen van een paar sheets naar een word document, bijvoorbeeld frafieken en zo…ik hoor het graag van je. Nogmaals bedankt

Reacties zijn gesloten.