Wat is een Macro?
Wanneer je in Excel vaak dezelfde handelingen uit voert is het heel handig om hier een Excel Macro van te maken. Een Excel Macro maken van terugkerende handelingen helpt je om Excel nog efficiënter te gebruiken.
Een macro is een klein computerprogrammaatje in Excel om herhalende bewerkingen voor de gebruiker uit te voeren. In Excel en andere Microsoft Office applicaties wordt hiervoor de programmeertaal VBA (Visual Basic for Applications) gebruikt. Met VBA is het mogelijk handelingen te automatiseren en de functionaliteit van Excel uit te breiden.
Activeren functionaliteit voor ontwikkelaars
Voordat je aan de slag kunt met Macro’s moet eerst aanvullende functionaliteit voor ontwikkelaars in Excel geactiveerd worden. Dit kan de gebruiker doen door in het lint te kiezen voor:
Bestand – Opties – Lint aanpassen
Klik het vinkje aan bij ‘Ontwikkelaars’ zoals weergegeven op onderstaande afbeelding.
In het lint verschijnt nu een extra tabblad ‘Ontwikkelaars’ naast de bestaande tabbladen zoals ‘Bestand’, ‘Start’, ‘Invoegen’ etc. (zie onderstaande afbeelding).
Onder het tabblad ‘ontwikkelaars’ wordt alle functionaliteit getoond met betrekking tot het gebruik van VBA en Macro’s. Een macro schrijven is met enig doorzettingsvermogen heel goed aan te leren. Toch kan de drempel voor mensen zonder enige programmeer ervaring net iets te hoog zijn. Voor deze categorie heeft Excel de optie ‘Macro opnemen’ toegevoegd. Zie afbeelding.
Macro’s opnemen
We zullen nu onze eerste zeer eenvoudige Macro opnemen. Dit doen we door in het huidige Excel werkblad in een geselecteerde cel de huidige datum en tijd te tonen. Hiervoor maken we gebruik van van een Macro zodat we niet steeds de formule opnieuw hoeven maken.
De Excel functionaliteit ‘Macro opnemen’ interpreteert de acties van de gebruiker en vertaalt deze naar VBA code. Door op de button ‘Macro opnemen’ te klikken wordt een dialoog scherm geopend, zie onderstaande afbeelding.
- Macronaam: geef de macro een herkenbare naam: Ik kies voor ‘DatumTijdStempel’
- Sneltoets: Een gewenste Sneltoets om de Macro snel op te kunnen starten. Ik kies voor Ctrl + q.
- Macro opslaan in: We kiezen voor ‘Deze Werkmap’
- Beschrijving: Een korte toelichting op de werking van de Macro: ‘Een eenvoudige macro om de huidige datum en tijd te tonen’
Belangrijk voor gebruik sneltoets (2): wanneer je een sneltoets kiest die al in gebruik is wordt de oorspronkelijke functionaliteit overschreven door de functionaliteit van de Macro (bijvoorbeeld Ctrl + s voor opslaan van het document).
Belangrijk voor het opslaan van de Macro (3): Wanneer je kiest voor ‘Macro opslaan in deze werkmap’ zal de Macro alleen beschikbaar zijn in dit specifieke Excel document. Wil je een Macro opslaan om deze ook in andere Excel documenten paraat te hebben kiest je voor ‘Persoonlijke macro werkmap’
Klik op ‘OK’ en opname begint.
In de tab ‘Ontwikkelaars’ is de button ‘Macro opnemen’ nu vervangen door de button ‘Opname stoppen’, dit laat zien dat de opname loopt. Type bijvoorbeeld in Cel A1 =NU(). De huidige datum en tijd zullen in de cel verschijnen. Druk vervolgens op de button ‘Opname stoppen’. Gefeliciteerd, je hebt je eerste macro gemaakt.
Klik op de button ‘Macro’s’
Een overzicht van de macro’s in huidige Excel file verschijnt met daarin de zojuist opgenomen Macro ‘DatumTijdStempel’.
De programmeercode van de Macro
Middels dit scherm kun je de macro laten uitvoeren, bewerken en verwijderen. Wanneer je voor ‘bewerken’ kiest wordt Visual Basic for Applications (VBA) geopend. De programmacode van de acties die we zojuist hebben uitgevoerd wordt getoond. Oftewel, de Macro is vertaald naar een stukje programmacode.
Sub DatumTijdStempel()
‘
‘ DatumTijdStempel Macro
‘ Een eenvoudige macro om de huidige datum en tijd te tonen
‘
‘ Sneltoets: Ctrl+q
‘
ActiveCell.FormulaR1C1 = “=NOW()”
End Sub
Deze programmacode kun je eventueel verder bewerken. Door de programmacode te bestuderen en ermee te experimenteren leer je al heel snel Excel onder de motorkap kennen.
Let op, deze programmeertaal is in het Engels en de gebruiker zal dus in het Engels moeten programmeren.
Een paar eerste handvaten voor het lezen VBA zijn:
- Een VBA procedure start altijd met: Sub naam macro ()
- Wanneer de tekst begint met een ‘ (apostrophe) is dit geen programmeercode maar slechts een toelichting voor de gebruiker. (bovenstaand voorbeeld de groene tekst)
- Een VBA Sub procedure eindigt altijd met: End Sub
Macro uitvoeren
Je kunt de macro activeren met de ingegeven sneltoets (Ctrl+ q) of via Macro’s – Uitvoeren.
Daarnaast is er de mogelijkheid onder Invoegen een Macro knop aan te maken.
Wanneer je voor ‘Invoegen‘ kiest en vervolgens het icoontje linksboven selecteert creëer je een knop die de macro activeert wanneer hier op geklikt wordt.
Na het selecteren van dit icoon kun je op een willekeurige plek in het Excel werkblad klikken. Het volgende scherm verschijnt:
Wijs de macro (DatumTijdStempel) toe aan het object (de knop) en kies voor OK.
Zo kunnen ook gebruikers die de Ontwikkelaars functionaliteit niet tot hun beschikking hebben de Macro toch gebruiken.
Opslaan van Excel bestanden met Macro’s
Een Excel bestand met een Macro moet specifiek opgeslagen moeten worden. Kies voor ‘Opslaan als’ en kies voor ‘Excel-werkmap met macro’s’
Je hebt nu je eerste stappen gezet in het gebruik van Macros. Probeer te bedenken welke Excel handelingen je op deze wijze zou kunnen automatiseren en probeer het uit.
Veel plezier met Excelleren!