Door aan de slag te gaan met code optimaliseren in Excel VBA verkort u deze niet alleen, maar maakt u ‘m ook sneller. Onderstaand fragment is afkomstig uit Het complete Boek Excel VBA voor professionals, 4e editie.
Aan de ene kant kunt u tijd besparen als u codes sneller kunt opstellen. Codewoorden uit een menu aanklikken in Excel VBA gaat sneller dan ze zelf typen (en foutloos). Codes die u kreeg door een macro op te nemen, kunt u vaak korter maken. Als u weet hoe dat gaat, kunt u ze zelf ook meteen kort typen.
Als u eenmaal een macro hebt en u wilt die door een andere procedure laten gebruiken, doet u aan hergebruik. Aan de andere kant kunt u de uitvoering van de procedure (iets) sneller laten verlopen. In de eerste plaats door overbodige opdrachten die de zaak vertragen weg te halen. Verder door eigenschappen die u tijdens een opname niet hebt gekozen, te verwijderen. Of door eigenschappen die bij hetzelfde object horen, in een blok With…End With
te plaatsen. Ook zaken als schermverversing en automatisch het werkblad berekenen vragen onnodig tijd. U leest hoe u duizenden keren een dobbelsteen gooit; daarbij komen we nog even terug op het werken met variabelen.

Opgenomen macrocode inkorten
Veel codes kunt u korter maken. Als u een macro opneemt, wordt voor elke stap een regel aangemaakt. Deze opgenomen code is vrij lang en er staan vaak overbodige zaken in. U kunt opdrachten korter schrijven en zelfs hele series opdrachtregels weghalen. Daardoor is de code eenvoudiger te overzien en zal deze sneller worden uitgevoerd.
Select en Selection weghalen
Stel, u wilt een cel leeg maken met een macro. Om de code te krijgen, neemt u die handeling op: u klikt tijdens de opname bijvoorbeeld op A9 en dan op de Delete-toets. De code zal er als volgt uitzien.
Sub Macro1()
‘ Macro1 Macro
Range("A9").Select
Selection.ClearContents
End Sub
Cel A9 wordt geselecteerd met de opdracht:
Range(“A9").Select
Vervolgens wordt de inhoud van deze selectie gewist met:
Selection.ClearContents
Om dit in twee stappen te doen, kost extra tijd en dat kan ook in één keer. U haalt Select
en Selection
er tussenuit, zodat de code er als volgt uitziet.
Sub Macro1()
‘Deze macro is ingekort
Range("A9").ClearContents
End Sub
💡 Vermijd Select
Probeer in het algemeen zo veel mogelijk het statement Select
te vermijden. Want dat is vaak een onnodige tussenstop en kan maken dat het beeldscherm flikkert.
Van vier regels één maken
Als u een macro opneemt die cel A1 kopieert en plakt in A2, ziet de code er na de opname als volgt uit.
Sub Macro2()
‘Deze macro is opgenomen
Range("A1").Select
Selection.Copy
Range("A2").Select
ActiveSheet.Paste
End Sub
In de derde opdracht wordt A2 geselecteerd met:
Range(“A2").Select
De kopie wordt daarin geplakt met:
ActiveSheet.Paste
U mag ook meteen aangeven dat de kopie in A2 moet worden geplakt, door Range(“A2")
achter Copy
te plaatsen (u gebruikt dan stilzwijgend het argument Destination
, wat in hoofdstuk 4, de paragraaf Kopiëren met een korte code van mijn boek wordt uitgelegd). Dan mag u ook ActiveSheet.Paste
weglaten en is de code:
Sub Macro2()
‘Deze macro is ingekort
Range("A1").Select
Selection.Copy Range("A2")
End Sub
Vervolgens kunnen (zoals u zopas zag) de stappen Select
en Selection
eruit. Dus kunt u de vier regels van de opgenomen code vervangen door de ene regel:
Sub Macro2()
‘Deze macro is fors ingekort
Range("A1").Copy Range("A2")
End Sub
U zult merken dat de procedure er sneller van wordt, zeker als deze meer van dit soort bewerkingen moet uitvoeren.
Gebied van cellen
Dit werkt ook bij een gebied van cellen. Onderstaande code kopieert het gebied A1 tot en met A4, gaat naar D1 en plakt de selectie; de kopie wordt geplakt in D1 tot en met D4.
Sub Macro3()
Range("A1:A4").Select
Selection.Copy
Range("D1").Select
ActiveSheet.Paste
End Sub
U geeft weer aan dat de kopie in D1 moet komen door de bestemming Range(“D1")
meteen achter Selection.Copy
te plaatsen, als volgt:
Sub Macro3()
Range("A1:A4").Select
Selection.Copy Range("D1")
End Sub
Vervolgens voegt u de beide regels samen, zodat u van de vier opdrachtregels één regel overhoudt.
Sub Macro3()
Range("A1:A4").Copy Range("D1")
End Sub
Hier duidt D1 aan dat de kopie wordt geplakt vanaf D1, de kopie van het blok A1 tot en met A4 komt in D1 tot en met D4.
In mijn boek ga ik nog veel meer op het onderwerp optimaliseren van code in!
Het Complete Boek Excel VBA voor professionals
Als u vaak dezelfde bewerkingen in Excel uitvoert, laat ze dan door een macro doen. Die doet het automatisch, supersnel en nauwkeurig. Zo bespaart u zeeën van tijd, wordt uw werk gemakkelijker en profiteert u meer van de kracht van Excel. Macro’s worden geschreven in de taal VBA (Visual Basic for Applications). Daarin kunt u ook eigen rekenfuncties schrijven en dialoogvensters ontwerpen, waardoor u Excel nog krachtiger en veelzijdiger maakt.
In dit boek vindt u 550 macro’s en 40 rekenfuncties. Bij alle voorbeelden wordt stap voor stap uitgelegd hoe ze werken. Zo leert u in Het Complete Boek Excel VBA voor professionals de principes van VBA en kunt u ze aanpassen voor uw eigen werk.
De recentste tips over Microsoft Excel:
Code optimaliseren in Excel VBA
Door aan de slag te gaan met code optimaliseren in Excel VBA verkort u deze niet alleen, maar maakt u ‘m ook sneller. Onderstaand fragment is afkomstig uit Het complete Boek Excel VBA voor professionals, 4e editie.
Macro’s maken en gebruiken in Excel
Met macro’s in Excel kunt u allerlei zaken op een eenvoudige manier automatiseren door ze simpelweg op te nemen en weer af te spelen
Sorteren met een dubbelklik in Excel
Wat dacht u ervan om een lijst in Excel te sorteren door te dubbelklikken ergens in de desbetreffende kolom? Dat klinkt als toveren, maar de VBA-code hiervoor is verrassend eenvoudig.
De verticale as in een Excelgrafiek aanpassen
Excel stelt bij een grafiek zelf de grootste en kleinste waarde van de verticale as in, maar zelf de verticale as in Excelgrafiek aanpassen is ook een optie. Hoe, dat lees je hier.
Cellen kleuren met voorwaardelijk opmaak in Excel
Soms wordt een tabel wat onoverzichtelijk. Cellen kleuren met voorwaardelijke opmaak in Excel brengt dan helderheid!
Werken met lijsten in Excel
Je kunt van alles in lijstvorm zetten in een spreadsheet, bijvoorbeeld de welbekende adressenlijst. Werken met lijsten in Excel is dan ook een essentiële activiteit.
Al onze Excel-tips en trucs vind je HIER

Wim de Groot schrijft artikelen over Excel voor het populaire tijdschrift ComputerIdee en boeken bij van Duuren Media. Als freelance auteur heeft hij al vele lezers weten te boeien met dit rekenprogramma. Hij begeleidt in de gezondheidszorg mensen op het gebied van levensvragen. Daarbij is helder communiceren van groot belang. Dat hij helder kan communiceren blijkt ook in zijn uitleg van Excel. Aan beginnende en gevorderde gebruikers laat hij zien hoe ze de mogelijkheden van dit rekenwonder kunnen benutten. Als nuchtere noorderling doet hij niet moeilijk over zaken die ingewikkeld lijken. Zijn doel is om u plezier te laten beleven aan uw computer en aan Excel in het bijzonder. De boeken van Wim vind je hier.