Tien tips voor het coderen van Excel VBA-macro's

Tien gezond verstandsuggesties om het coderen van Excel VBA sneller en eenvoudiger te maken. Deze tips zijn gebaseerd op Excel 2010 (maar ze werken in bijna alle versies) en velen zijn geïnspireerd door het O'Reilly-boek "Excel 2010 - The Missing Manual" van Matthew MacDonald.

1 - Test uw macro's altijd in een wegwerptest-spreadsheet, meestal een exemplaar waarmee het is ontworpen. Ongedaan maken werkt niet met macro's, dus als u een macro codeert die uw spreadsheet vouwt, spilt en verminkt, hebt u pech tenzij u deze tip hebt gevolgd.

2 - Het gebruik van sneltoetsen kan gevaarlijk zijn omdat Excel u niet waarschuwt als u een sneltoets kiest die Excel al gebruikt. Als dit gebeurt, gebruikt Excel de sneltoets voor de macro, niet de ingebouwde sneltoets. Bedenk hoe verbaasd je baas zal zijn wanneer hij je macro laadt en dan voegt Ctrl-C een willekeurig getal toe aan de helft van de cellen in zijn spreadsheet.

Matthew MacDonald doet deze suggestie in "Excel 2010 - The Missing Manual."

Hier zijn enkele veelgebruikte toetscombinaties die u nooit aan macrosnelkoppelingen moet toewijzen omdat mensen ze te vaak gebruiken:

  • Ctrl + S (opslaan)
  • Ctrl + P (afdrukken)
  • Ctrl + O (open)
  • Ctrl + N (nieuw)
  • Ctrl + X (Exit)
  • Ctrl + Z (Ongedaan maken)
  • Ctrl + Y (Opnieuw / Herhalen)
  • Ctrl + C (kopiëren)
  • Ctrl + X (knippen)
  • Ctrl + V (plakken)

Gebruik altijd de toetsencombinaties Ctrl + Shift + letter om problemen te voorkomen, omdat deze combinaties veel minder vaak voorkomen dan de sneltoetsen Ctrl + letter. En als u twijfelt, wijs dan geen sneltoets toe wanneer u een nieuwe, niet-geteste macro maakt.

3 - Kan Alt-F8 (de standaard macro-snelkoppeling) niet herinneren? Betekenen de namen u niets? Omdat Excel macro's in elke geopende werkmap beschikbaar maakt voor elke andere werkmap die momenteel is geopend, is de eenvoudige manier om uw eigen macrobibliotheek samen te stellen met al uw macro's in een afzonderlijke werkmap. Open die werkmap samen met uw andere spreadsheets. Zoals Matthew het zegt: "Stel je voor dat je een werkmap met de naam SalesReport.xlsx bewerkt en je opent een andere werkmap met de naam MyMacroCollection.xlsm, die enkele nuttige macro's bevat. Je kunt de macro's in MyMacroCollection.xlsm gebruiken met SalesReport.xlsx zonder een storing. " Matthew zegt dat dit ontwerp het gemakkelijk maakt om macro's te delen en hergebruiken tussen werkmappen (en tussen verschillende mensen).

4 - En overweeg om knoppen toe te voegen om te linken naar de macro's in het werkblad dat uw macrobibliotheek bevat. U kunt de knoppen rangschikken in elke functionele groepering die voor u zinvol is en tekst toevoegen aan het werkblad om uit te leggen wat ze doen. Je zult je nooit afvragen wat een cryptisch benoemde macro eigenlijk weer doet.

5 - De nieuwe macro-beveiligingsarchitectuur van Microsoft is veel verbeterd, maar het is nog handiger om Excel te vertellen de bestanden in bepaalde mappen op uw computer (of op andere computers) te vertrouwen. Kies een specifieke map op uw harde schijf als een vertrouwde locatie. Als u een werkmap opent die op deze locatie is opgeslagen, wordt deze automatisch vertrouwd.

6 - Probeer bij het coderen van een macro geen celselectie in de macro op te nemen. Ga er in plaats daarvan van uit dat de cellen die de macro zal gebruiken, vooraf zijn geselecteerd. U kunt de muis eenvoudig over de cellen slepen om ze te selecteren. Het coderen van een macro die flexibel genoeg is om hetzelfde te doen, zit waarschijnlijk vol met bugs en is moeilijk te programmeren. Als je iets wilt programmeren, probeer dan te achterhalen hoe je validatiecode kunt schrijven om te controleren of in plaats daarvan een geschikte selectie in de macro is gemaakt.

7 - U denkt misschien dat Excel een macro uitvoert op de werkmap die de macrocode bevat, maar dit is niet altijd waar. Excel voert de macro uit in de actieve werkmap. Dat is het werkboek dat u het laatst hebt bekeken. Zoals Matthew het uitlegt: "Als u twee werkmappen hebt geopend en u gebruikt de Windows-taakbalk om over te schakelen naar de tweede werkmap en vervolgens terug naar de Visual Basic-editor, voert Excel de macro uit op de tweede werkmap."

8 - Matthew suggereert dat: "Probeer uw vensters zo te rangschikken dat u het Excel-venster en het Visual Basic-editorvenster tegelijkertijd naast elkaar kunt zien, voor eenvoudiger macro-codering." Maar Excel zal het niet doen (Alles schikken in het menu Beeld rangschikt alleen de werkmappen. Visual Basic wordt door Excel beschouwd als een ander toepassingsvenster.) Maar Windows wel. Sluit in Vista alles behalve de twee die u wilt rangschikken en klik met de rechtermuisknop op de taakbalk; selecteer "Windows naast elkaar weergeven". Gebruik in Windows 7 de functie "Snap". (Zoek online naar "Windows 7-functies Snap" voor instructies.)

9 - De beste tip van Matthew: "Veel programmeurs vinden lange wandelingen op het strand of een beker met bergdauw een handige manier om hun hoofd leeg te maken."

En natuurlijk de moeder van alle VBA-tips:

10 - Het eerste dat u kunt proberen als u de uitspraken of trefwoorden die u nodig hebt in uw programmacode niet kunt bedenken, is de macrorecorder inschakelen en een aantal bewerkingen uitvoeren die op elkaar lijken. Onderzoek vervolgens de gegenereerde code. Het zal je niet altijd op het juiste wijzen, maar vaak wel. Het geeft je minimaal een plek om te beginnen met zoeken.

Bron

MacDonald, Matthew. "Excel 2010: The Missing Manual." 1 editie, O'Reilly Media, 4 juli 2010.