Sneller en efficiënter werken met macro's

© PXimport

Sneller en efficiënter werken met macro's

Geplaatst: 20 november 2017 - 08:41

Aangepast: 24 november 2022 - 12:53

Toon van Daele

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.

© PXimport

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.

© PXimport

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

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

© PXimport

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.

© PXimport

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.

© PXimport

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.

© PXimport

Tip 07: Autocorrectie

Je zou kunnen stellen dat de applicaties uit Microsoft Office nog een ander type macro’s in huis hebben: de zogenoemde tekstmacro’s. Microsoft zelf noemt deze functie autocorrectie. Het komt erop neer dat een bepaald woord of afkorting tijdens het intikken door een ander woord of begrip wordt vervangen. Dat kan gaan om typische tikfouten als ‘va n het’ (wordt vervangen door ‘van het’) maar ook om eigen afkortingen als bijvoorbeeld ‘tt’ (wordt vervangen door ‘Tips & Trucs’). In Microsoft Office open je deze functie via Bestand / Opties / Controle / AutoCorrectie-opties. Op het tabblad AutoCorrectie zie je dan een lijst van woordparen (Vervangen: en Door:). Die kun je echter aanpassen en ook eigen items toevoegen is mogelijk.

Handig, maar deze functie werkt natuurlijk alleen door binnen de applicaties zelf. Je kunt ze dus niet gebruiken in een andere toepassing als Wordpad of je browser. Gelukkig zijn er macrotools als PhraseExpress die op de achtergrond actief blijven en wél doorwerken in andere applicaties. We leggen je kort uit hoe je hiermee aan de slag gaat.

De functie AutoCorrectie in Microsoft Office is eigenlijk een verzameling tekstmacro’s.

© PXimport

Tip 08: PhraseExpress

Je vindt PhraseExpress hier. De tool is beschikbaar voor diverse platformen. Wij focussen ons hier op de Windows-versie. Na 30 dagen zijn de professionele functies niet langer beschikbaar, maar voor persoonlijk gebruik kunnen we daarmee best verder. De installatie is vooral een kwestie van enkele Next-knoppen in te drukken. Na installatie vind je het bijhorende pictogram terug in het systeemvak van Windows. Om snel aan de slag te gaan klik je met de rechtermuisknop op dit pictogram en kies je Edit phrases. Er verschijnt een dialoogvenster waar je op het tabblad Phrases, in de rubriek Insert, op de knop Phrase drukt. Voorzie een beschrijving bij Description en tik bij Phrase content de tekst in die je wilt zien verschijnen. Bij Hotkey duid je een geschikte sneltoets(combinatie) aan en bij Autotext kun je eventueel de tekst, zoals een afkorting, invullen die je door de Phrase content wilt vervangen zien.

Wellicht wil je de optie Execute only after default delimiter geselecteerd laten, zodat de tekst pas wordt vervangen na het invoegen van bijvoorbeeld een spatie of leesteken. Alternatieven zijn onder meer Execute immediately en Execute after manual confirmation. In dit laatste geval verschijnt een venstertje met de vervangtekst en laat je de vervanging via de Tab-toets doorgaan. Eventueel plaats je nog een vinkje bij Execute only in specific programs en geef je aan in welke applicaties deze tekstmacro mag werken. Zodra je het dialoogvenster afsluit is de nieuwe tekstmacro actief. Meer informatie vind je hier.

De tekstmacro’s van PhraseExpress zijn veel krachtiger dan die van Office.

© PXimport

Tip 09: Macrofunctie

PhraseExpress ondersteunt ook, wat de makers noemen, ‘macrofuncties’. Een beetje een verwarrende term, maar hiermee wordt bedoeld dat er méér mogelijk is dan het laten vervangen door statische tekstdelen. Het is bijvoorbeeld mogelijk de actuele tijd of datum in te voegen, een berekening uit te voeren, een webpagina te openen of een programma op te starten. We beperken ons hier tot een paar voorbeelden.

Wanneer je bij Phrase content de regel Vandaag is het {#DATE} en het is precies {#TIME} intikt, dan krijg je automatisch de actuele datum en tijdstip te zien (overigens ook wanneer je gewoon de autotekst #date en #time invult in je document). Je hoeft deze macro’s niet noodzakelijk te onthouden: wanneer je het Phrase content-paneel aanklikt, kun je immers heel wat macro’s in de menubalk selecteren, zoals Date/Time / Current Date of zelfs Date/Time / Calendar for date selection. In dit laatste geval verschijnt een minikalender waarin je de gewenste datum aanduidt.

Al even gemakkelijk is het om een webpagina te openen: kies Automation / Open web page, vul de url in en kies de gewenste browser. Of had je liever snel een diep geneste map geopend: ga naar Automation / Open folder, duid de map aan en klaar ben je. PhraseExpress biedt nog krachtiger mogelijkheden aan: de instructievideo’s en deze voorbeelden zetten je goed op weg.

Handige keuzemenu’s maken het werken met macro’s een stuk makkelijker.

© PXimport

Tip 10: AutoHotkey

PhraseExpress biedt dus heel wat mogelijkheden aan op het vlak van tekstmacro’s, maar de automatiseringstool bij uitstek is en blijft het gratis AutoHotkey. Net als bij Microsoft Office wordt ook deze tool door een scriptingtaal aangestuurd. Wil je zelf complexe handelingen automatiseren, dan zit er inderdaad weinig anders op dan je in deze taal te bekwamen. Maar ook zonder programmeerkennis kom je al een heel eind, mede dankzij de uitgebreide beginnerscursus en de actieve gemeenschap rond AutoHotkey. Verder tref je op YouTube heel wat instructievideo’s aan.

Laten we kennismaken met deze veelzijdige tool: surf naar www.autohotkey.com en download de AutoHotkey Installer (voor Windows). Start de installatieroutine op en kies voor de Express Installation. Even later staat AutoHotkey al op je systeem. Echter, start je de tool op, dan duikt alleen de helpfunctie op. De bedoeling is namelijk dat je eerst een script schrijft en pas wanneer je dat script uitvoert, komt AutoHotkey echt tot leven.

Zonder scripts heeft AutoHotkey weinig meer dan een helpfunctie te bieden.

© PXimport

Tip 11: AutoHotkey-editor

Hoewel je zo’n script met een tool als Kladblok kunt schrijven, werkt een gespecialiseerde editor als SciTE veel handiger. Je vindt die hier. Eventuele updates laat je best na-installeren. Start je de tool de eerste keer op, dan laadt die een voorbeeldscript in. Handig om al een indruk van de syntax te krijgen en via het blauwe pijltje kun je het script meteen ook al uitvoeren.

Laten we nu een eerste, eenvoudige tekstmacro creëren. Daartoe tik je in SciTE de volgende tekstregel in: ::t&t::Tips & Trucs{Enter}. Sla het script op via File / Save (As) en geef het de extensie .ahk mee.

Wanneer je dit script vervolgens uitvoert, hoef je maar in een willekeurige applicatie t&t in te tikken om het meteen te zien veranderen in Tips & Trucs.

Je kunt in één scriptbestand overigens ook meerdere tekstmacro’s tegelijk opnemen, als volgt:

::t&t::Tips & Trucs
#V::Send,Toon
#A::Send,van Daele
^!E::Send,tvd@tipstrucs.nl
return

De eerste regel hebben we al uitgelegd. Met de drie daaropvolgende regels stuur je telkens een andere tekstmacro door, respectievelijk na het indrukken van Windows-toets+V, Windows-toets+A en Ctrl+Alt+E. Gebruik je een sneltoets bij een tekstmacro dan moet je de string laten voorafgaan door Send,. Merk tevens op dat je meerregelige code afsluit met return.

Een tekstmacro vergt soms maar een enkele scriptregel.

© PXimport

Tip 12: Extra’s AutoHotkey

AutoHotkey kan echter veel meer dan alleen tekstmacro’s afhandelen. De tool kan onder meer ook programma’s opstarten en aansturen, toetsen herdefiniëren, bestanden en het klembord manipuleren enzovoort. Een paar eenvoudige voorbeelden geven je al een aardig idee. Het volgende script start een browser en laadt de website van Tips & Trucs zodra iemand de toetscombinatie Windows-toets+Ctrl+G; het pad naar je eigen browser moet je mogelijk nog aanpassen:

#^g::
run "c:\program files (x86)\Google\Chrome\Application\chrome.exe" http://tipsentrucs.nl
return

Met het volgende scriptje stuur je de tekst die zich op dit moment in je klembord bevindt, als zoekterm door naar Google:

#^g::
run https://www.google.com/serach?q=%clipboard%
return

Het is zelfs mogelijk de muis aan te sturen met AutoHotkey, bijvoorbeeld als volgt:

^m::
click left 105,62
click left 140,95
return

Hier zorgt de sneltoets Ctrl+M ervoor dat de muiscursor zich eerst begeeft naar schermcoördinaten 105,62. Daar wordt een druk op de linkermuisknop gegenereerd en vervolgens gebeurt hetzelfde op coördinaten 140,95. Deze coördinaten kom je overigens makkelijk te weten in SciTE via het knopje Active Window Info.

Je merkt het al: de mogelijkheden van AutoHotkey zijn eigenlijk alleen beperkt door je eigen verbeelding en scriptkennis. Succes.

Van script tot exe

Snel je eigen programma op basis van een AutoHotKey-script.

© PXimport

Deel dit artikel
Voeg toe aan favorieten