Tien gezonde suggesties om het coderen van Excel VBA sneller en gemakkelijker te maken. Deze tips zijn gebaseerd op Excel 2010 (maar ze werken in bijna alle versies) en velen zijn geïnspireerd op het O'Reilly-boek "Excel 2010 - The Missing Manual" van Matthew MacDonald.
1 - Test uw macro's altijd in een wegwerptestspreadsheet, meestal een kopie van een spreadsheet waarvoor deze is ontworpen. Ongedaan maken werkt niet met macro's, dus als je een macro codeert die je spreadsheet vouwt, spindelt en verminkt, heb je pech tenzij je 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 verrast je baas zal zijn wanneer hij je macro laadt en dan Ctrl-C een willekeurige toevoegt aantal tot de helft van de cellen in zijn spreadsheet.
Matthew MacDonald doet deze suggestie in "Excel 2010 - The Missing Manual".
Hier zijn enkele veelvoorkomende toetscombinaties die u nooit aan macro-snelkoppelingen mag toewijzen omdat mensen ze te vaak gebruiken:
- Ctrl + S (Opslaan)
- Ctrl + P (afdrukken)
- Ctrl + O (openen)
- Ctrl + N (nieuw)
- Ctrl + X (afsluiten)
- Ctrl + Z (Ongedaan maken)
- Ctrl + Y (opnieuw / herhalen)
- Ctrl + C (kopiëren)
- Ctrl + X (knippen)
- Ctrl + V (plakken)
Gebruik altijd Ctrl + Shift + letter-macrotoetscombinaties 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 ik Alt-F8 (de standaard macro-snelkoppeling) niet onthouden? Zeggen de namen je niets? Aangezien Excel macro's in elke geopende werkmap beschikbaar zal maken voor elke andere werkmap die dat is momenteel geopend, is de gemakkelijke manier om uw eigen macrobibliotheek te bouwen met al uw macro's in een aparte werkboek. Open die werkmap samen met je 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 een paar nuttige macro's bevat. U kunt de macro's in MyMacroCollection.xlsm probleemloos gebruiken met SalesReport.xlsx. " Matthew zegt dat dit ontwerp het gemakkelijk maakt om macro's te delen en opnieuw te gebruiken in werkmappen (en tussen verschillende mensen).
4 - En overweeg 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 aan het werkblad toevoegen om uit te leggen wat ze doen. Je zult je nooit meer afvragen wat een cryptisch genoemde macro eigenlijk weer doet.
5 - De nieuwe macrobeveiligingsarchitectuur van Microsoft is veel verbeterd, maar het is nog handiger om Excel te vertellen dat hij de bestanden in bepaalde mappen op uw computer (of op andere computers) moet vertrouwen. Kies een specifieke map op uw harde schijf als 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 in te bouwen. Ga er in plaats daarvan van uit dat de cellen die de macro zal gebruiken, vooraf zijn geselecteerd. U kunt de muis gemakkelijk over de cellen slepen om ze te selecteren. Het coderen van een macro die flexibel genoeg is om hetzelfde te doen, zit waarschijnlijk vol bugs en is moeilijk te programmeren. Als u iets wilt programmeren, probeer dan uit te zoeken hoe u validatiecode schrijft om te controleren of er in de macro een juiste selectie is gemaakt.
7 - Je zou kunnen denken dat Excel een macro uitvoert tegen 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 waar u het laatst naar hebt gekeken. Zoals Matthew het uitlegt: 'Als je twee werkmappen hebt geopend en je de taakbalk van Windows gebruikt om naar over te schakelen de tweede werkmap en vervolgens terug naar de Visual Basic-editor, voert Excel de macro uit op de tweede werkboek."
8 - Matthew suggereert: "Voor eenvoudiger macro-codering, probeer je vensters te ordenen zodat je het Excel-venster en de Visual kunt zien Basis editorvenster tegelijkertijd, zij aan zij. "Maar Excel doet het niet, (Alles schikken in het menu Beeld regelt 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 "Snap" -functie. (Zoek online naar "Windows 7-functies Snap" voor instructies.)
9 - De beste tip van Matthew: "Veel programmeurs vinden lange wandelingen op het strand of het slurpen van een kruik Mountain Dew een nuttige manier om hun hoofd leeg te maken."
En natuurlijk de moeder van alle VBA-tips:
10 - Het eerste dat u moet proberen als u niet kunt denken aan de uitspraken of trefwoorden die u nodig heeft in uw programmacode, is het inschakelen van macro-recorder en voer een aantal bewerkingen uit die op elkaar lijken. Bekijk vervolgens de gegenereerde code. Het wijst u niet altijd naar het juiste, 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.