Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Geavanceerde macro's in Word

Door: | 17 mei 2010 16:22

None
Apps & Software

Inhoudsopgave

  1. Inleiding
  2. pagina 2
  3. pagina 3
  4. pagina 4

Wellicht weten sommige Word-gebruikers wel hoe ze een vaak te herhalen serie handelingen, tekst en manipulaties kunnen opnemen en met één toetscombinatie automatisch kunnen herhalen: een Word-macro. Maar zonder het te beseffen, gaan ze op die manier aan de slag met een bijzonder krachtige functionaliteit die achter elke module van Microsoft Office steekt: Visual Basic for Applications, kortweg VBA. Op deze manier gaat de deur open voor een wereld van zelf te ontwikkelen snufjes, trucjes en andere spitsvondigheden.

Via menu of toetsenbord

Druk in Word 2003/2007 op Alt+F11 en we komen in de VBA-editor terecht. Dit gaat ook via het Lint van Word 2007 (tabblad Ontwikkelaars / knop Visual Basic) of het menu in Word 2003 en eerder (kies Extra / Macro / Visual Basic Editor). Met diezelfde Alt+F11 schakelen we heen en weer tussen Word en de VBA-editor. Om een eerder opgenomen macro of zelf ontworpen VBA-programma uit te voeren, drukken we Alt+F8, of klikken we in Word 2007 op de knop Macro's op het tabblad Ontwikkelaars van het Lint (of in Word 2003: Extra / Macro / Macro's). Het starten van een macro-opname kan dan weer via de knop Macro opnemen (in Word 2003 en eerder: Extra / Macro / Nieuwe macro opnemen), maar gaat veel sneller als we dubbelklikken op het vensterpictogram (in Word 2003 en eerder: het OPN-vakje).

Een bewerking opnemen als een macro is de eenvoudigste manier om VBA-code te produceren.

Niet alleen in Word

Nagenoeg alle basisvaardigheden die in deze Expertcursus beschreven worden, gelden ook in elke andere module van Microsoft Office: probeer maar eens dingen uit in Excel, PowerPoint, Outlook, Access, Project of Visio. Sterker nog: er bestaat heel wat software van andere partijen, die er eveneens voor gekozen hebben om VBA als macrotaal aan te bieden, compleet met de VBA-editor en alle vermelde sneltoetsen, waaronder AutoCAD, iGrafx FlowCharter, CorelDRAW, WordPerfect Office, BusinessObjects, etc.

De eerste stappen

De eenvoudigste toegang tot de wereld van VBA, is het in een macro opnemen van een bewerking, die u vervolgens uitbreidt en verfijnt door er extra functionaliteit bij te coderen. Stel bijvoorbeeld dat u besluit om in een bestaand document elke zin binnen een tekstblok te laten volgen door twee spaties in plaats van één. Een eerste aanpak hiervoor is het herhaaldelijk oproepen van de zoek/vervangfunctie (zie ook de Expertcursus 'Zoek en vervang' in het vorige nummer van Computer!Totaal): zoeken naar een punt gevolgd door een spatie en vervangen door een punt met twee spaties. Dan opnieuw beginnen voor het vraagteken, het uitroepteken, etc. Dit moet sneller en ­eleganter kunnen, toch? Op naar VBA!

De VBA-editor

Laten we die eerste vervangslag opnemen in een macro waarvoor we de standaard voorgestelde benaming Macro1 aanvaarden en aangeven dat we die wensen op te slaan in het huidige Document1. Vervolgens drukken we Alt+F11, en we belanden in de VBA-editor. Vanaf hier dienen we een tweetalige wereld te aanvaarden: de gebruiksinterface blijft in het Nederlands (of in welke taal Word ook gebruikt wordt), maar de code is altijd in het Engels, zelfs al dient die om een Nederlandstalige Word te automatiseren. De voornaamste werkruimtes binnen de VBA-editor zijn het Codevenster en de Projectverkenner. Die laatste toont in een boomstructuur alle actieve documenten en sjablonen. We klappen Project (Document1) uit, en we zien drie takken: Microsoft Word -objecten, Modules en Verwijzingen, telkens met één onderliggend niveau. Onder Modules is dat NewMacros. Als we tenslotte op NewMacros dubbelklikken, dan verschijnt de code die we (onbewust) gegenereerd hebben in het codevenster

Met Alt+F11 komen we vanuit elke module van Microsoft Office in de VBA-editor terecht.

Structuur

Een op zichzelf staand stuk programmatuur wordt in VBA een subroutine genoemd. Vandaar dat alle code die het bevat tussen de instructies Sub en End Sub staat. De beginnende Sub wordt gevolgd door een zelf te kiezen naam voor de routine. Gaat het om een opgenomen macro, dan is dit de naam die men in de dialoog van Word gekozen heeft vóór de opname begon. Maar dit kan in de editor nog gewijzigd worden. De naam die u gebruikt, wordt getoond in de lijst van beschikbare macro's die u opent met Alt+F8.

Tussen deze twee regels kunnen instructies en declaraties komen, in principe één per regel, tenzij ze gescheiden worden door dubbele punten. Een regel die begint met een apostrof (') duidt een commentaarregel aan. Dergelijke stukken tekst hebben geen invloed op het verloop van het programma: ze worden overgeslagen en dienen dus alleen als documentatie. Automatisch worden ze in het groen gezet door de VBA-editor. Gereserveerde sleutelwoorden komen in het blauw, de overige tekst in het zwart, regels met fouten in het rood. Een regel broncode wordt afgesloten door op Enter te drukken: gebruik geen punten of andere leestekens, tenzij de code (om redenen van leesbaarheid, bijvoorbeeld) op de volgende regel verder gaat: dan beëindigen we de regel met een spatie en een 'underscore' (het platliggende streepje: _).

Declaraties zijn voorafgaande aankondigingen van variabelen die we van plan zijn te gebruiken, met hun type. Dergelijke meldingen beginnen met het sleutelwoord Dim, gevolgd door een zelf te kiezen naam voor de variabele, dan As en het type (zie kader). Ze zijn facultatief, tenzij Variabelen declareren vereist aangekruist staat in het tabblad Editor onder Extra / Opties, of als we in het begin van de code (dus nog vóór de eerste Sub-regel) de instructie Option Explicit plaatsen.

In de opties van de VBA-editor duiden we aan of we variabelen expliciet gedeclareerd willen hebben.

0 Reacties op: Geavanceerde macro's in Word

  • Om te reageren moet je ingelogd zijn. Nog geen account? Registreer je dan en praat mee!
  • Er zijn nog geen reacties op dit artikel.

Wanneer je een reactie plaatst ga je akoord
met onze voorwaarden voor reacties.