Macro’s: een uitbreiding van de functionaliteiten van Excel

fallback
Excel kent vele functionaliteiten, maar vaak ook schieten die toch tekort. Dan krijgen we de behoefte om (werkbalk)-knopjes te hebben voor onze eigen functionaliteiten. Regelmatig terugkerende handeling willen we liever geautomatiseerd zien. Het schrijven van macro's maakt dit allemaal mogelijk.

Afhankelijk van de moeilijkheidsgraad van de terugkerende handelingen kunnen we dit zonder enige programmeerkennis oplossen. Excel kent namelijk de macrorecorder. Deze recorder is niet moeilijker te gebruiken dan de cassetterecorder waarmee een ieder wel eens muziek heeft opgenomen. Eén keer opnemen en daarna vele keren afspelen (=toepassen).


Laten we eens het volgende voorbeeld bekijken: Een bedrijf wil iedere maand een rapportage van de verkoopcijfers van de afgelopen drie maanden hebben. Daarvoor wordt gebruik gemaakt van een Excel sheet, waarin een tabel is opgenomen en daaraan gekoppeld een grafiek. 


We gaan nu een macro maken die de maandelijks terugkerende handelingen opneemt. Daarvoor kiezen we uit het menu Tools, Macro, Record New Macro (Extra, Macro, macro opnemen). In het opkomende venster vullen we de naam van de macro in (MaandToevoegen) en we geven aan dat de macro dient te worden opgeslagen in dit werkboek.

Alle handelingen die we vanaf nu verrichten worden door de macrorecorder opgenomen. Doe achtereenvolgens de volgende stappen: · Selecteer cel B1 t/m B4 en maak de inhoud van deze selectie leeg. · Selecteer de cellen C1 t/m D4 en kies CTRL+C (kopiëren) · Selecteer cel B1 en kies CTRL+V (plakken) · Selecteer cellen B1 en C1 en sleep met het blokje rechtsonder door naar cel D1 (automatisch aanvullen). Hierdoor komt in cel D1 de volgende maand te staan. · Selecteer de cellen G2 t/m G4 en kies CTRL+X (knippen) · Selecteer de cellen D2 t/m D4 en kies CTRL+V (plakken) ·


Druk nu op het knopje macro stoppen. De macro heeft nu alle stappen die we hebben gedaan opgenomen. We zullen eerst de macro testen voordat we verder gaan. Vul (om iets te kunnen zien) eerst wat gegevens in de cellen G2 t/m G4 in. Kies vervolgens voor het menu Tools, Macro, Macros’s. We krijgen dan een lijstje van alle beschikbare macro’s.


Selecteer MaandToevoegen en kies RUN. Als alles goed is gegaan zullen oude gegevens uit de tabel zijn verwijderd, de nieuwe gegevens zijn aangepast en in de grafiek zijn bijgewerkt. Willen we nu zien wat de macrorecorder heeft gedaan, dan moeten we gaan kijken in de Visual Basic Editor. Dit is een professionele programmeeromgeving die altijd bij Excel beschikbaar is.


Kies hiervoor Tools, Macro, Visual Basic Editor. U komt dan in het volgende scherm:  Hierin kunt u de code lezen die de macrorecorder voor ons heeft geschreven. De regels geven één voor één de handelingen aan die we hebben uitgevoerd maar dan uitgeschreven in Visual Basic code (VBA staat voor Visual Basic for Applications en is de taal die in alle Office producten wordt gebruikt om te programmeren).


Deze code lijkt in eerste instantie op een soort technisch Engels. Het lezen en herkennen van deze code is nu niet meer zo vreselijk moeilijk. We kunnen deze Editor gebruiken als een eenvoudige tekst-editor, waardoor we in staat zijn kleine correcties aan te brengen in de code. Het is mogelijk om zonder enige kennis van VBA op deze wijze macro’s op te nemen, te bewerken en aan elkaar te plakken. Het is mogelijk om op deze wijze met enige durf macro’s uitgebreide en ingewikkelde zaken te laten doen.


Het is echter niet mogelijk om zonder enige kennis van de taal VBA flexibele en professionele macro’s te maken en te onderhouden. Macro’s met voorwaardelijke acties (If….then…else…-constructies) en macro’s met gebruikersinterventie zijn op deze manier niet te maken. Hiervoor is kennis van VBA absoluut noodzakelijk. Het is mogelijk om in een tweedaagse cursus basisvaardigheden aan te leren om eigen macro’s te maken. Hierbij kan dan ook gewerkt worden met eigen communicatieformulieren.


Voor ingewikkelde toepassingen zijn echter programmeervaardigheden benodigd waarvoor nog enkele dagen cursus benodigd zal zijn.