In dit artikel behandelen wij het opnemen van een macro. Dit wordt voornamelijk gebruikt door mensen die nog niet heel bekend zijn met de VBA programmeertaal. Wat de macro recorder namelijk doet is dat hij de acties die jij uitvoert voor je uitschrijft in een module. Nu denk je misschien, waarom zou ik dan überhaupt VBA hoeven leren als ik alles kan opnemen? Er zitten een aantal beperkingen aan deze functie die ik aan de hand van een aantal voorbeelden voor je ga verduidelijken.
Dit zal meteen al een stuk duidelijker worden aan de hand van het eerste simpele voorbeeld. Stel ik wil in cel B3 op Blad1 de tekst “mijn eerste macro recording” plaatsen. Je begint een opname door links onderin op deze knop te drukken.

Voer de actie uit en druk vervolgens weer op dezelfde knop. Druk nu op Alt + F11 om naar de Visual Basic editor te gaan. De andere manier is via het tabblad ‘Ontwikkelaars’. Indien deze niet zichtbaar is staat HIER uitgeschreven hoe je deze zichtbaar kunt maken.
De uitgeschreven opname Kun je nu (in geval van een nieuw Excelbestand) in Module 1 terugvinden. Het is de sub genaamd ‘Macro1’
Sub Macro1()
'
' Macro1 Macro
'
'
    Range("B3").Select
    ActiveCell.FormulaR1C1 = "mijn eerste macro recording"
    Range("B4").Select
End Sub
Als je naar de bovenstaande tekst kijkt kun je jouw eigen acties daarin wel herkennen. Het nadeel is dat de vastlegging ervan erg omslachtig is vastgelegd. Je kunt deze actie namelijk ook verrichten met één regel code. Een select functie is bijvoorbeeld al zo’n actie die je in een script bijna nooit hoeft uit te voeren. Het is in feite een tussenstap, voordat je bij de daadwerkelijke bewerking uitkomst. in VBA heb je die niet nodig.

Er zit nog een 2e nadeel aan de macro recorder. Probeer maar eens een nieuw Excel bestand te openen. Als je nu dit bestand open houdt en je speelt via de editor nogmaals de code af dan zie je dat de tekst nu in dit excelbestand terecht komt. Dat komt doordat je via de macro recorder altijd acties in active objecten uitvoert. Acties uitvoeren in active objecten is altijd link, omdat je een actie in een verkeerd document gaat uitvoeren indien het active workbook bijvoorbeeld verandert. Het maakt je macro script veel robuuster als je aangeeft in welk object een actie uitgevoerd dient te worden. Als we deze code zelf zouden schrijven dan ziet hij er zo uit.
Sub Macro1()
   thisworkbook.sheets("Blad1").range("B3") = "mijn eerste macro recording"
End Sub
Waar is de Macro recorder binnen Excel vooral handig voor?
Ik heb zojuist laten zien dat iemand die ervaring heeft met schrijven van macro’s dus niet zo vaak die macro recorder zal gebruiken. Toch is het niet zo dat ik hem nooit nodig heb. Waar hij mij wel altijd goed van pas komt is wanneer ik bezig ben met opmaak van cellen. Er is bijna niemand die de vele kleursoorten en lettertypes uit zijn hoofd kent. Dan is het erg makkelijk om de opmaak uit te voeren met de macro recorder en dan de bewerkingen toe te voegen die ik hierboven heb laten zien.
							
			
Pingback:Sorteren in een macro - Macro Excel Advies
Pingback:Filteren in een macro - Macro Excel Advies
Pingback:Set werkmap en werkblad - Macro Excel Advies
Pingback:Formules in cellen plaatsen met een macro - Macro Excel Advies