Word-macro’s (5): Creatief met Tupperware (= variabelen)

6
80
Dit artikel is deel 5 van 6 in het DiskIdee dossier Macro's in Microsoft Word
DossiernavigatieWord-macro’s (4): Knop of sneltoets toekennenWord-macro’s (6): Een wissel: de IF-functie

Weet je wat Tupperware is? Juist, van die plastic doosjes met deksel waarin je allerlei voedingswaren kunt stoppen voor bewaring in de diepvriezer. Om achteraf al die doosjes te kunnen herkennen, plak je er een etiket op met "Spaghettisaus" of zoiets. Eigenlijk wil ik het hier hebben over variabelen, maar als ik dat bovenaan als titel zet, haakt er al een deel van de lezers af nog voor de les begonnen is. Nochtans is dat niet nodig, want er is een sterke parallel tussen Tupperware-potjes en variabelen.
mac5_tupperware
 Hoe ontstaat de nood aan variabelen?
Twee lessen geleden maakten we al kennis met de functie Inputbox(). Hiermee kon je een venster op het scherm laten verschijnen, waarin je kon antwoorden op een vraag. In het voorbeeld vroegen we je de hoeveelste macro dat nu al was, je typte je antwoord in en dat antwoord verscheen dan in je tekst.
Stel nu dat je met diezelfde functie Inputbox(), de naam van de gebruiker vraagt, maar dat je die naam meer dan één keer wil gebruiken in je macro. Met de kennis die je tot nu opdeed, zou je dan telkens weer de naam moeten vragen! Dat is natuurlijk te gek, als er nu iets is wat een pc goed kan, dat is het wel zaken onthouden. Daarom gaan we de gebruiker maar één keer naar zijn naam vragen, en we gaan zijn antwoord bewaren voor later.
Dat "bewaren voor later", dat doe je in een variabele.
Misschien vraag je niet alleen zijn naam, maar ook nog zijn geboortedatum en die wil je ook bewaren. Zo krijg je dan meerdere variabelen, en om die uit elkaar te houden, plak je er een etiket op – zie je de parallel tussen de variabelen en de Tupperware-dozen? In beide gevallen is het een bakje met een inhoud en waarop een etiket geplakt is.

Het etiket, of beter: de naam van de variabele
Op het etiket van je Tupperware-potje zet je letterlijk wat je maar wil. De naam van de variabele is iets kritischer: het moet één woord zijn, en dan nog een woord dat Visual Basic zelf niet gebruikt.
Eén woord, dat is nogal duidelijk: er mogen geen spaties in staan. Gebruik ook geen vreemde tekens zoals vraagtekens, punten, komma’s enzovoort: hou het bij letters, eventueel gecombineerd met cijfers.
Maar "een woord dat het zelf niet gebruikt", hier hoort misschien een woordje uitleg bij. Wanneer in een macro iets geschreven moet worden, staat er in de code:

Selection.TypeText Text:=

Je ziet daar de woorden Selection, TypeText en Text staan, wel, dat zijn woorden die het programma zelf gebruikt. Je mag je variabele dus niet Selection noemen, maar ook niet Text. Zo zijn er natuurlijk een heleboel woorden, en het zou de eerste leerling-programmeur niet zijn die zich suf zoekt naar de reden waarom zijn code niet werkt, terwijl één van zijn variabelen de naam Date heeft!
Moet je nu al die speciale woorden van buiten gaan leren? Nee, er is voor ons een heel simpele truc: al die woorden zijn Engelse woorden! Gebruik voor je variabelen daarom altijd een mooi, Nederlands woord zoals Achternaam, Geboortedatum, Straatnaam enzovoort.

Werken met een variabele
Om de spaghettisaus in je Tupperware-potje te doen, ga je een lepel gebruiken, maar hoe krijg je de naam van de gebruiker in een variabele?
Dat doe je met het gelijkheidsteken = . Eerst schrijf je de naam van de variabele, dan het = teken, en tot slot de inhoud.
Echte programmeurs gaan je nu zeggen dat je een variabele eerst moet declareren en zullen zeuren over de zichtbaarheid en levensduur van variabelen – vergeet dat alsjeblieft allemaal. Ze hebben gelijk, daar niet van, maar voor de kleine, simpele, nuttige macro-tjes die je wilt maken is dat echt niet nodig.
Enkele voorbeeldjes zullen veel duidelijk maken.

1
2
Vorig artikelEen pen voor je pc
Volgend artikelOveral in huis draadloze toegang tot multimediabestanden
René Paulus
René Paulus is medewerker van Diskidee.

6 REACTIES

  1. Bedankt voor de perfecte macrouitleg. Kan ik een wordmacro (office XP prof) vanaf het bureaublad starten?

    Jebro

  2. Hoi René,

    Ik ben blij dat er nog een vervolg komt ik hoop snel.
    Wat ik bedoel eigenlijk is wat je ongeveer in deel 3 beschrijft maar dan een opmaak van een brief of een fax. Hoe je een lege regels krijgt. Ik zal een voorbeeld geven;
    Naam
    Adres
    postcode plaats

    Datum:

    Betreft:
    Dat lukt mij alles komt naast elkaar te staan misschien dat jij het weet hoe ik dat voor elkaar krijgt dan hoor ik dat graag of dat het in het vervolg wordt besproken. In ieder geval ik ben hoopvol.

  3. Bedankt, Ingrid, er komt trouwens nog een vervolgje op.
    Wat bedoel je met \”hoe ik een brief moet maken\”?
    Een fax op zich is natuurlijk maar een gewone brief met eventueel wat speciale lay-out, maar om hem rechtstreeks te versturen vanaf je pc ùoet je pc wel beschikken over een aansluiting op het telefoonnet, plus speciale software. Meestal vind je die terug als een printer in het venster \”Afdrukken…\”
    Logo\’s maak je best in een tekenprogramma.
    groetjes,!

  4. Ik wil je bedanken voor de goede uitleg van de macro\’s ik heb er veel aan gehad. Wat ik nog wel zou willen weten is hoe ik een fax , brief, memo, logo moet maken.

  5. Fantastisch gewoon! Bedankt aan al de mensen die hier hun kostbare tijd insteken zodat anderen het ook kunnen leren!

  6. en nu het vervolg ?? automatische actie\’s zoals printen en daarna sluiten zonder saven en opnieuw naar een volgende situatie

Reacties zijn gesloten.