Sneller en efficiënter werken met macro's

Door: Toon van Daele | 20 november 2017 10:41

How To

Inhoudsopgave

  1. Inleiding
  2. Pagina 2

Hoe vaak herhaal je niet dezelfde handelingen op je computer? Geef toe: je zou veel slimmer en sneller kunnen werken als je zulke herhalende acties kon automatiseren. Dat is precies wat macro’s voor je kunnen betekenen. We gaan ermee aan de slag in Microsoft Office, maar ook in andere applicaties. Sneller en efficiënter werken met macro's doe je zo!

Tip 01: Macro’s

Je hebt vast al van de term macro’s gehoord. Veel gebruikers weten echter niet goed wat het precies inhoudt, laat staan dat ze er zelf al actief mee aan de slag zijn gegaan. Dat is wel jammer, want macro’s zorgen ervoor dat bepaalde handelingen veel sneller kunnen worden uitgevoerd. Een macro is namelijk weinig minder dan een miniprogramma, ingebed in een applicatie of gekoppeld aan een sneltoets of toetscombinatie, dat zelfstandig een vaste reeks handelingen kan uitvoeren. Sommige applicaties hebben zo’n macrogenerator ingebouwd, zoals Photoshop of Microsoft Office, maar er zijn ook macrotools die op de achtergrond actief blijven en op die manier ook kunnen doorwerken in andere applicaties. Geloof ons maar: als je het werken met macro’s eenmaal een beetje onder de knie hebt, wil je nooit meer zonder.

Tip 01 Ook in Photoshop kun je macro’s (handelingen of actions) eenvoudigweg opnemen en weer afspelen.

Tip 02: Ontwikkelaars-tab

We beginnen onze verkenning van macro’s met de macrorecorder zoals die in applicaties uit de Microsoft Office-suite zit ingebouwd. We nemen Word 2016 als voorbeeld, maar dat had net zo goed Excel kunnen zijn. Om met macro’s te kunnen werken, moet je eerst het tabblad Ontwikkelaars tevoorschijn halen. Dat doe je via het menu Bestand, waar je achtereenvolgens de menu-items Opties en Lint aanpassen selecteert. Onderaan het rechterpaneel plaats je dan een vinkje bij Ontwikkelaars. Eventueel kun je het plusje aanklikken bij Ontwikkelaars en alle onderdelen behalve Programmacode via de knop Verwijderen uit het paneel weghalen (die hebben we niet meteen nodig voor dit artikel). Bevestig met OK en het tabblad verschijnt meteen. Wanneer je dit tabblad opent, zie je de rubriek Programmacode, met daarin onder meer de knoppen Macro’s en Macro opnemen. Je treft hier ook een uitroepteken met geel driehoekje aan: daarover meer in het kader ‘Macrobeveiliging’.

Tip 03: Macro opnemen

Tip 03 Best handig: je kunt je macro’s aan een eigen sneltoets koppelen.

Je bent nu klaar om macro’s op te nemen. Druk op de knop Macro opnemen en geef je macro een duidelijke naam, zonder spaties of speciale tekens. Wil je de macro alleen binnen het actieve document gebruiken of had je die graag voor alle volgende documenten ter beschikking? In het eerste geval kies je Macro opslaan in <naam> (document), in het tweede geval kies je voor Macro opslaan in Alle documenten (Normal.dotm).

Verder dien je nog aan te geven hoe je de macro wilt kunnen oproepen. Dat kan weliswaar via de knop Macro’s in de rubriek Programmacode, maar je kunt er ook een sneltoets (kies Toetsenbord) of een specifieke knop (kies Knop) aan koppelen.

Een concreet voorbeeld: we willen dat een geselecteerd stukje tekst tegelijk vet en cursief wordt zodra we Alt+V+C indrukken. In dit geval klik je op Toetsenbord en druk je Alt+V+C in. Controleer of er bij Momenteel toegewezen aan: [Niet toegewezen] staat, zodat je niet ongewild een al bestaande sneltoets overschrijft, en bevestig met Sluiten. Je cursor heeft nu het icoon van een cassette meegekregen: de opname is begonnen. Klik op de knoppen Vet en Cursief op het tabblad Start, ga naar het tabblad Ontwikkelaars en klik hier op Opname stoppen: de macro wordt nu opgeslagen zodat je die meteen kunt uittesten.

Zowel Word als Excel bevatten een handige macro-recorder

Macrobeveiliging

Macro’s zijn programma’s en dus kunnen ze in principe ook malafide code bevatten. Wanneer je documenten downloadt of ontvangt valt het nooit helemaal uit te sluiten dat die (verborgen) macro’s met kwaadaardige code bevatten. Om te verhinderen dat die zomaar worden uitgevoerd is in Office standaard een beveiliging actief die je in dat geval een melding geeft waarbij je zelf moet aangeven of je die macro’s wilt uitvoeren. Het beveiligingsniveau kun je echter aanpassen via de optie Macrobeveiliging op het tabblad Ontwikkelaars (of via Bestand / Opties / Vertrouwenscentrum / Instellingen voor het vertrouwenscentrum / Macro-instellingen). De tweede optie, getiteld Alle macro’s zonder melding uitschakelen, maar die eigenlijk Alle macro’s mét melding uitschakelen hoort te heten, is de standaardinstelling. Wil je het strikter, dan kun je de eerste optie (Alle macro’s uitschakelen zonder melding) selecteren: het document wordt dan geopend zonder de macro’s, maar ook zonder verdere berichtgeving.

De standaardoptie: een erg brakke vertaling van ‘Disable all macros with notification’.

Tip 04: Macro analyseren

Op vergelijkbare manier kun je nu nog andere macro’s opnemen. Via de knop Macro’s (of met sneltoets Alt+F8) krijg je die dan netjes opgesomd. Van hieruit kun je een geselecteerde macro niet alleen uitvoeren, maar tevens verwijderen en bewerken. De optie Bewerken brengt je echter niet naar de macro-recorder van daarnet, maar toont je de achterliggende scriptcode van die macro. Dat blijkt in een stukje Microsoft Visual Basic for Applications te zijn, kortweg VBA. We gaan ons in dit artikel geenszins verdiepen in deze materie, maar willen je wel voldoende informatie meegeven zodat je macro’s kunt creëren, downloaden, eventueel bewerken, en zelf gebruiken. We tonen je bovendien hoe je macro’s exporteert en importeert.

De code van onze voorbeeldmacro van daarnet (vet én cursief) ziet er als volgt uit (weliswaar zonder de regelnummering):

1 Sub TipsTrucsVetCursief()
2 ' TipsTrucsVetCursief Macro
3 ' vet en cursief
4 Selection.Font.Bold = wdToggle
5 Selection.Font.Italic = wdToggle
6 End Sub

Daaruit leiden we het volgende af. De code begint (zie regel 1) met Sub <naam_van_macro>() en eindigt (zie regel 6) met End Sub. Regels 2 en 3 zijn commentaarregels, die beginnen met een enkel aanhalingsteken en worden als code verder genegeerd. Dit soort commentaarregels worden onder meer gebruikt om uitleg over de code te geven. Regels 4 en 5 bevatten de eigenlijke commando’s, waarvan de functie vaak uit de namen af te leiden valt.

Om een (gewijzigde) macro op te slaan, druk je op Ctrl+S. Via het groene pijltje kun je ook vanuit deze ontwikkelomgeving een macro uitvoeren. Heb je een wat langere macro gecreëerd of gedownload, dan kan het erg verhelderend zijn wanneer je die stap voor stap laat uitvoeren: telkens je op F8 drukt wordt een volgende coderegel uitgevoerd.

Het ‘geheim’ achter Office-macro’s: Visual Basic for Applications.

Tip 05: Zelf macro schrijven

Hoe ga je nu te werk wanneer je zelf een macro wilt schrijven? We geven een voorbeeld aan de hand van een eenvoudig scriptje voor Excel. De werkwijze is zo goed als identiek aan die in Word. Open Excel en zorg dat het tabblad Ontwikkelaars zichtbaar is (zie stap 2). Hier klik je dan Macro’s aan, waarna je een naam verzint voor je macro en op Maken klikt. De ontwikkelomgeving duikt op en een aantal elementen (Sub <naam>() en End Sub) zijn al voor je ingevuld: je schrijft hier de coderegels tussen in. Met een enkele coderegel zorgen we ervoor dat Excel ons vertelt hoeveel rijen we hebben geselecteerd: MsgBox Selection.Rows.Count. Overigens is het al even eenvoudig het aantal kolommen te laten tellen: MsgBox Selection.Columns.Count.

Bewaar de macro in het formaat xlsm en test die uit vanuit het dialoogvenster Macro’s. Als je graag een sneltoets aan deze macro wilt koppelen: in Excel kan dat vanuit dit dialoogvenster, met de knop Opties. In Word is dat iets complexer. Open Bestand / Opties / Lint aanpassen en druk op de knop Aanpassen bij Sneltoetsen. Scrol naar beneden in het paneel Categorieën en klik op Macro’s. Selecteer de macro, klik in het veld Druk op nieuwe sneltoets, druk de gewenste sneltoets(combinatie) in en leg die vast met Toewijzen.

Sommige scripts zijn kort en eenvoudig.

Tip 06: Macro’s downloaden

Je kunt je natuurlijk zelf verder bekwamen in VBA: hier vind je alvast een beginnerscursus en even googelen zet je meteen op het spoor van vele andere gidsen. Maar je kunt ook kant-en-klare vba-scripts downloaden. Vaak volstaat een zoekterm als <applicatie> macro <bedoeling van de macro>, bijvoorbeeld iets als ‘word macro to replace text’ of ‘excel macro for counting colored cells’. Of wat dacht je van een heus ‘macro-boek’ met bijna 500 gedocumenteerde Word-macro’s.

Hoe dan ook, in veel gevallen is het voldoende zo’n script te kopiëren en in de ontwikkelomgeving te plakken. De rest van het verhaal ken je inmiddels.

Wellicht is het ook nuttig om weten dat je een macro kunt exporteren, zodat het op een ander systeem kan worden geïmporteerd en gebruikt. In de ontwikkelomgeving ga je naar het menu Bestand / Bestand exporteren, waarna je de macro als een bas-bestand bewaart. Importeren doe je door de ontwikkelomgeving te openen (dat gaat het snelst via Alt+F11), Bestand / Bestand importeren te kiezen en naar het bas-bestand te verwijzen. De macro belandt standaard in het linkerpaneel, in de rubriek Modules / NewMacros. Met een dubbelklik open je dan het bijhorende script.

Het is ook mogelijk macro’s te exporteren en weer te importeren.

0 Reactie(s) op: Sneller en efficiënter werken met macro's

  • 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.