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)

Die ANDERS wordt in Visual Basic ELSE, en daarachter volgt dan de "tak indien niet waar".
Op het einde van de IF instructie staat dan nog een END IF.
De volledige IF-instructie ziet er nu als volgt uit:

IF THEN

END IF

Ofwel:

IF THEN

ELSE

END IF

Enkele voorbeelden
Hier dan de code van een volledig uitgewerkt voorbeeld:


Een eerste uitgewerkt voorbeeld

Eerst vraag je de leeftijd van betrokkene, en afhankelijk van het antwoord wordt het zinnetje afgedrukt dat hier van toepassing is.
Merk op dat Visual Basic zelf zijn "eigen" woordjes in het blauw zet, dat hoef je uiteraard niet zelf te doen! Wat je wel zelf mag doen, is de regels van de "tak indien waar" en de "tak indien niet waar" wat te laten inspringen. Dat doe je door voor die regels op de tabulatortoets te drukken. Dat hoeft niet, maar achteraf is het dan gemakkelijker om de code te lezen.

Een tweede, wat langer voorbeeld:


Een tweede uitgewerkt voorbeeld

Je ziet dat hier op voorhand verondersteld wordt dat het geslacht vrouwelijk is, en bij de instructie IF wordt alleen maar de "tak indien waar" gebruikt. Natuurlijk kan je ook een IF met twee takken maken.

UCase-functie
Hier wordt bovendien gebruik gemaakt werd van een nieuwe functie: UCase().
Visual Basic is namelijk hoofdlettergevoelig, wat wil zeggen dat als geslacht, "M" en "m" niet hetzelfde zijn. Als de voorwaarde dan is: geslacht = "M" dan zou dat niet waar zijn wanneer je "m" intypte!
De functie UCase() – dit is de afkorting van Uppercase, in het Nederlands hoofdletter – zet je antwoord altijd om in een hoofdletter, ongeacht wat je intypt.
Om op papier het regeltje "Aan de heer Jan Janssens" te schrijven, heb je in het voorbeeld maar liefst zes lijnen code nodig:

Selection.TypeText Text:="Aan "
Selection.TypeText Text:=titel
Selection.TypeText Text:=" "
Selection.TypeText Text:=voornaam
Selection.TypeText Text:=" "
Selection.TypeText Text:=naam

Dat kan korter, door gebruikte maken van het concatenatieteken, waarmee simpelweg de ampersand of & bedoeld wordt. Zo kan je die zes lijnen vervangen door een enkele lijn:

Selection.TypeText Text:="Aan " & titel & " " & voornaam & " " & naam

Vergeet nooit de spaties tussen de verschillende delen ( dat is dus telkens die " " ), anders plakt alles aan elkaar!

Opdracht
Probeer dit laatste voorbeeld ook eens met een IF-instructie met twee takken?
Gebruik in de plaats van de functie UCase() eens de verwante functie LCase().

Conclusie
Met de instructie IF kan je voortaan een keuze maken. De schrijfwijze is:

IF THEN

ELSE

END IF

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.