4 fouten die u moet vermijden bij het programmeren van Excel-macro's met VBA

4 fouten die u moet vermijden bij het programmeren van Excel-macro's met VBA

Microsoft Excel is al een capabele tool voor gegevensanalyse, maar met de mogelijkheid om repetitieve taken met macro's te automatiseren door eenvoudige code te schrijven in Visual Basic for Applications (VBA), is het nog veel krachtiger. Bij verkeerd gebruik kan VBA echter problemen veroorzaken.





Zelfs als u geen programmeur bent, biedt VBA eenvoudige functies waarmee u indrukwekkende functionaliteit aan uw spreadsheets kunt toevoegen.





Het maakt niet uit of u een VBA-goeroe bent die dashboards maakt in Excel, of een beginner bent die eenvoudige scripts schrijft die elementaire celberekeningen uitvoeren. Volg deze eenvoudige programmeertechnieken om te leren hoe u schone, foutvrije code schrijft.





Aan de slag met VBA

VBA kan allerlei leuke dingen voor je doen. Van het schrijven van macro's die werkbladen wijzigen tot e-mails verzenden vanuit een Excel-spreadsheet met VBA-scripts er zijn zeer weinig grenzen aan uw productiviteit.

Als u nog niet eerder in VBA in Excel hebt geprogrammeerd, moet u de ontwikkelaarstools in uw Excel-programma inschakelen. Het goede nieuws is dat het inschakelen van de ontwikkelaarstools eigenlijk vrij eenvoudig is. Ga gewoon naar Bestand > Opties en dan Lint aanpassen . Verplaats de Ontwikkelaar tabblad van het linkerdeelvenster naar rechts.



Zorg ervoor dat dit tabblad is ingeschakeld in het selectievakje en nu verschijnt het tabblad Ontwikkelaars in uw Excel-menu.

De gemakkelijkste manier om vanaf hier in het code-editorvenster te komen, is door op de knop te klikken Bekijk code knop onder Bediening in het Ontwikkelaarsmenu.





U bent nu klaar om VBA-code te schrijven! Op dit tabblad krijgt u zowel toegang tot VBA als: macro's opnemen in Excel . Nu Excel klaar is om te werken, laten we enkele veelvoorkomende fouten bespreken die u moet vermijden en de manieren om ze te voorkomen.

1. Vreselijke namen van variabelen

Nu u zich in het codevenster bevindt, is het tijd om VBA-code te gaan schrijven. De eerste belangrijke stap in de meeste programma's, of het nu in VBA of een andere taal is, is het definiëren van uw variabelen. Het niet correct benoemen van variabelen is een van de meest voorkomende programmeerfouten die nieuwe ontwikkelaars maken.





kun je films downloaden van hulu

Gedurende mijn decennia van codeschrijven, ben ik veel denkrichtingen tegengekomen als het gaat om variabele naamgevingsconventies en heb ik een paar regels op de harde manier geleerd. Hier zijn enkele snelle tips voor het maken van variabelenamen:

  • Maak ze zo kort mogelijk.
  • Maak ze zo beschrijvend mogelijk.
  • Laat ze voorafgaan door het variabele type (boolean, integer, etc...).

Hier is een voorbeeldschermafbeelding van een programma dat ik vaak gebruik om WMIC Windows-aanroepen vanuit Excel te doen om pc-informatie te verzamelen.

Als je de variabelen binnen een functie binnen de module of het object wilt gebruiken (ik zal dit hieronder uitleggen), dan moet je het als een 'openbare' variabele declareren door de declaratie vooraf te laten gaan met Openbaar . Anders worden variabelen gedeclareerd door ze vooraf te laten gaan door het woord Geen .

Zoals je kunt zien, als de variabele een geheel getal is, wordt deze voorafgegaan door int . Als het een string is, dan P . Dit is een persoonlijke voorkeur die later helpt tijdens het programmeren, omdat je altijd weet welk type gegevens de variabele bevat door naar de naam te kijken.

Zorg er ook voor dat u de bladen in uw Excel-werkmap een naam geeft.

Op deze manier verwijst u, wanneer u naar de bladnaam in uw Excel VBA-code verwijst, naar een naam die logisch is. In het bovenstaande voorbeeld heb ik een blad waar ik netwerkinformatie in trek, dus ik noem het blad 'Netwerk'. Elke keer dat ik naar het netwerkblad wil verwijzen, kan ik het snel doen zonder op te zoeken welk bladnummer het is.

2. Breken in plaats van herhalen

Een van de meest voorkomende problemen die nieuwere VBA-programmeurs hebben wanneer ze beginnen met het schrijven van code, is het correct omgaan met lussen.

Looping is heel gebruikelijk in Excel, omdat u vaak gegevenswaarden in een hele rij of een kolom verwerkt, dus u moet een lus maken om ze allemaal te verwerken.

Nieuwe programmeurs willen vaak gewoon uit een lus breken (VBA For-lussen of VBA Do While-lussen) wanneer aan een bepaalde voorwaarde wordt voldaan.

Hier is een voorbeeld van hoe deze methode wordt gebruikt om een ​​VBA-lus te doorbreken.

For x = 1 To 20
If x = 6 Then Exit For
y = x + intRoomTemp
Next i

Nieuwe programmeurs nemen deze aanpak omdat het gemakkelijk is. Probeer en vermijd expliciet een lus te doorbreken.

Vaker wel dan niet, is de code die na die 'pauze' komt belangrijk om te verwerken. Een veel schonere en professionelere manier om met omstandigheden om te gaan waarbij u halverwege een lus wilt verlaten, is door die exit-voorwaarde op te nemen in zoiets als een VBA While-instructie.

While (x>=1 AND x<=20 AND x6)
For x = 1 To 20
y = x + intRoomTemp
Next i
Wend

Dit zorgt voor een logische stroom van uw code. Nu zal de code doorlopen en stoppen zodra deze 6 bereikt. Het is niet nodig om lastige EXIT- of BREAK-commando's midden in de lus op te nemen.

3. Geen arrays gebruiken

Een andere interessante fout die nieuwe VBA-programmeurs maken, is dat ze proberen alles te verwerken in talloze geneste lussen die tijdens het berekeningsproces door rijen en kolommen filteren.

Dit kan ook leiden tot grote prestatieproblemen. Het doorlopen van een kolom en het elke keer extraheren van de waarden is een moordenaar op uw processor. Een efficiëntere manier om met lange lijsten met getallen om te gaan, is door een array te gebruiken.

Als u nog nooit eerder een array hebt gebruikt, hoeft u zich geen zorgen te maken. Stel je een array voor als een ijsblokjesbakje met een bepaald aantal 'blokjes' waar je informatie in kunt stoppen. De kubussen zijn genummerd van 1 t/m 12, en zo 'zet' je er data in.

U kunt eenvoudig een array definiëren door gewoon te typen Dim arrMyArray (12) als geheel getal .

hoe instagram foto's te bekijken zonder een account

Zo ontstaat er een 'tray' met 12 vakjes die je kunt vullen.

Hier is hoe een rij-loopcode zonder een array eruit zou kunnen zien:

Sub Test1()
Dim x As Integer
intNumRows = Range('A2', Range('A2').End(xldown)).Rows.Count
Range('A2').Select
For x = 1 To intNumRows
If Range('A' & str(x)).value <100 then
intTemp = (Range('A' & str(x)).value) * 32 - 100
End If
ActiveCell.Offset(1, 0).Select
Next
End Sub

In dit voorbeeld verwerkt de code elke cel in het bereik en voert de temperatuurberekening uit.

Als u ooit een andere berekening op dezelfde waarden wilt uitvoeren, zou het proces onhandig zijn. U moet deze code dupliceren, door al deze cellen heen gaan en uw nieuwe berekening uitvoeren. Alles voor één verandering!

Hier is een beter voorbeeld, met behulp van een array. Laten we eerst de array maken.

Sub Test1()
Dim x As Integer
intNumRows = Range('A2', Range('A2').End(xldown)).Rows.Count
Range('A2').Select
For x = 1 To intNumRows
arrMyArray(x-1) = Range('A' & str(x)).value)
ActiveCell.Offset(1, 0).Select
Next
End Sub

De x-1 voor het verwijzen naar het array-element is alleen nodig omdat de For-lus bij 1 begint. Array-elementen moeten bij 0 beginnen.

Nu je de array hebt, is het heel eenvoudig om de inhoud te verwerken.

Sub TempCalc()
For x = 0 To UBound(arrMyArray)
arrMyTemps(y) = arrMyArray(x) * 32 - 100
Next
End Sub

Dit voorbeeld doorloopt de hele rij-array ( UBound geeft u het aantal gegevenswaarden in de array), doet de temperatuurberekening en plaatst deze vervolgens in een andere array met de naam arrMyTemps .

4. Te veel referenties gebruiken

Of u nu programmeert in volwaardige Visual Basic of VBA, u moet 'referenties' opnemen om toegang te krijgen tot bepaalde functies.

Verwijzingen zijn een soort van 'bibliotheken' gevuld met functionaliteit waar je gebruik van kunt maken als je dat bestand inschakelt. U kunt referenties vinden in de ontwikkelaarsweergave door te klikken op Gereedschap in het menu en klik vervolgens op Referenties .

In dit venster vindt u alle momenteel geselecteerde referenties voor uw huidige VBA-project.

U moet deze lijst controleren omdat onnodige verwijzingen systeembronnen kunnen verspillen. Als u geen XML-bestandsmanipulatie gebruikt, waarom zou u Microsoft XML dan geselecteerd houden? Als u niet met een database communiceert, verwijder dan Microsoft DAO, enz.

Als u niet zeker weet wat deze geselecteerde referenties doen, drukt u op F2 en je ziet de Objectverkenner. Boven aan dit venster kunt u de referentiebibliotheek kiezen om door te bladeren.

Eenmaal geselecteerd, ziet u alle objecten en beschikbare functies, waarop u kunt klikken voor meer informatie.

Als ik bijvoorbeeld op de DAO-bibliotheek klik, wordt al snel duidelijk dat dit allemaal draait om het verbinden met en communiceren met databases.

Het verminderen van het aantal referenties dat u in uw programmeerproject gebruikt, is gewoon verstandig en zal helpen om uw algehele toepassing efficiënter te laten werken.

hoe live streaming video te downloaden

Programmeren in Excel VBA

Het hele idee om daadwerkelijk code in Excel te schrijven schrikt veel mensen af, maar deze angst is echt niet nodig. Visual Basic for Applications is een zeer eenvoudige taal om te leren, en als u de hierboven genoemde algemene basispraktijken volgt, zorgt u ervoor dat uw code schoon, efficiënt en gemakkelijk te begrijpen is.

Stop daar echter niet. Bouw een sterke basis van Excel-vaardigheden met een VBA-zelfstudie voor beginners . Blijf dan leren over VBA en macro's met bronnen om u te helpen uw spreadsheets te automatiseren.

Deel Deel Tweeten E-mail Is het de moeite waard om te upgraden naar Windows 11?

Windows is opnieuw ontworpen. Maar is dat genoeg om u te overtuigen om over te stappen van Windows 10 naar Windows 11?

Lees volgende
Gerelateerde onderwerpen
  • productiviteit
  • Programmeren
  • Programmeren
  • Visual Basic-programmering
  • Microsoft Excel
Over de auteur Anthony Grant(40 artikelen gepubliceerd)

Anthony Grant is een freelance schrijver over programmering en software. Hij is een major in computerwetenschappen en houdt zich bezig met programmeren, Excel, software en technologie.

Meer van Anthony Grant

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

Klik hier om je te abonneren