De beste VBA-gids (voor beginners) die u ooit nodig zult hebben

Het VBA-programmeerplatform(VBA programming) dat door bijna alle Microsoft Office - producten draait, is een van de krachtigste tools die iemand kan gebruiken om het gebruik van die producten te verbeteren.

Deze VBA -handleiding voor beginners laat u zien hoe u het ontwikkelaarsmenu(Developer) aan uw Office -toepassing toevoegt, hoe u het VBA - editorvenster opent en hoe basis -VBA- instructies en -lussen werken, zodat u aan de slag kunt met VBA in Excel , Word , Powerpoint , Outlook en OneNote .

Deze VBA- handleiding gebruikt de nieuwste versie van Microsoft Office- producten. Als u een eerdere versie heeft, ziet u mogelijk enkele kleine verschillen met de schermafbeeldingen.

Hoe de VBA-editor in te schakelen en te gebruiken?(How To Enable & Use The VBA Editor)

In elk van de Office- producten die in deze handleiding worden gebruikt, is het mogelijk dat u niet beschikt over het ontwikkelaarsmenu(Developer) waarnaar wordt verwezen . Het ontwikkelaarsmenu is alleen beschikbaar in Excel , Word , Outlook en Powerpoint . OneNote biedt geen tool om VBA -code vanuit de toepassing te bewerken, maar u kunt nog steeds verwijzen naar de OneNote-API voor interactie met OneNote vanuit andere Office - programma's. 

U leert hoe u dit kunt doen in onze aankomende Advanced VBA- gids.

  • Om het ontwikkelaarsmenu(Developer) in een kantoorproduct in te schakelen, selecteert u het menu Bestand(File) en selecteert u Opties(Options) in het linkernavigatiemenu. 
  • U ziet een pop-upmenu met opties . (Options)Selecteer Lint aanpassen(Customize Ribbon) in het linkernavigatiemenu.

De linkerlijst bevat alle beschikbare menu's en menuopdrachten die beschikbaar zijn in die Office -toepassing. De lijst aan de rechterkant zijn degenen die momenteel beschikbaar of geactiveerd zijn.

  • U zou Developer in de lijst aan de rechterkant moeten zien, maar deze wordt niet geactiveerd. Selecteer gewoon(Just) het selectievakje om het menu Ontwikkelaars(Developer) te activeren.

  • Als u aan de rechterkant de ontwikkelaar(Developer) niet beschikbaar ziet, verander dan de linker Kies opdrachten(Choose commands) uit de vervolgkeuzelijst in Alle opdrachten(All Commands) . Zoek Ontwikkelaar(Developer) in de lijst en selecteer Add>> in het midden om dat menu aan het lint(Ribbon) toe te voegen .
  • Selecteer OK als u klaar bent.
  • Zodra het ontwikkelaarsmenu(Developer) actief is, kunt u teruggaan naar uw hoofdtoepassingsvenster en Ontwikkelaar(Developer) selecteren in het hoofdmenu. 
  • Selecteer vervolgens Bekijk code(View Code) in de groep Besturingselementen(Controls) op het lint om het VBA - editorvenster te openen.

  • Dit opent het VBA -editorvenster waar u de code kunt typen die u in de volgende secties zult leren.

  • Probeer het Ontwikkelaarsmenu(Developer) toe te voegen aan enkele van de Office -toepassingen die u dagelijks gebruikt. Als u eenmaal vertrouwd bent met het openen van het VBA- editorvenster, gaat u verder met het volgende gedeelte van deze handleiding.

Algemene VBA-programmeertips voor beginners(General VBA Programming Tips for Beginners)

U zult merken dat wanneer de VBA -editor wordt geopend, de navigatie-opties in het linkerdeelvenster er per Office -toepassing anders uitzien.

Dit komt omdat de beschikbare objecten waar u VBA -code kunt plaatsen, afhangen van welke objecten er in de toepassing zijn. In Excel kunt u bijvoorbeeld VBA -code toevoegen aan werkmap- of werkbladobjecten. In Word kunt u VBA -code aan documenten toevoegen. In Powerpoint alleen voor modules.

Laat u dus niet verrassen door de verschillende menu's. De structuur en syntaxis van de VBA -code is hetzelfde in alle toepassingen. Het enige verschil zijn de objecten waarnaar u kunt verwijzen en de acties die u op die objecten kunt ondernemen via de VBA -code.

Voordat we ingaan op de verschillende objecten en acties die u erop kunt ondernemen via VBA -code, laten we eerst kijken naar de meest voorkomende VBA - structuur en syntaxis die u kunt gebruiken bij het schrijven van VBA -code.

Waar VBA-code plaatsen(Where To Put VBA Code)

Wanneer je in de VBA- editor bent, moet je de twee vervolgkeuzelijsten bovenaan het bewerkingsvenster gebruiken om te kiezen aan welk object je de code wilt koppelen en wanneer je wilt dat de code wordt uitgevoerd.

Als u bijvoorbeeld in Excel Werkblad(Worksheet) en Activeren(Activate) kiest , wordt de code uitgevoerd wanneer het werkblad wordt geopend. 

Andere werkbladacties die u kunt gebruiken om uw VBA(VBA) -code te activeren , zijn onder meer wanneer het werkblad verandert, wanneer het wordt gesloten (gedeactiveerd), wanneer de werkbladberekening wordt uitgevoerd en meer.

Wanneer u VBA -code in de editor toevoegt, zorg er dan altijd voor dat u uw VBA -code op het object plaatst en de juiste actie gebruikt die u wilt gebruiken om die code te activeren.

VBA IF-verklaringen(VBA IF Statements)

Een IF-statement werkt in VBA net zoals het in elke andere programmeertaal werkt.

Het eerste deel van de IF-instructie kijkt of een voorwaarde of een reeks voorwaarden waar is. Deze voorwaarden kunnen worden samengevoegd door een AND- of OR-operator om ze aan elkaar te koppelen.

Een voorbeeld zou zijn om te controleren of een cijfer in een spreadsheet hoger of lager is dan een "geslaagd" cijfer, en het toewijzen van de status 'geslaagd' of 'geslaagd' aan een andere cel.

If Cells(2, 2) > 75 Then Cells(2, 3) = “Pass” Else Cells(2, 3) = “Fail”

Als u niet de hele instructie op één regel wilt hebben, kunt u deze opsplitsen in meerdere regels door een "_" -symbool aan het einde van de regels toe te voegen.

If Cells(2, 2) > 75 Then _
Cells(2, 3) = “Pass”  Else _
Cells(2, 3) = “Fail”

Het gebruik van deze techniek kan code vaak veel gemakkelijker te lezen en te debuggen maken.

VBA voor volgende lussen(VBA For Next Loops)

IF-instructies zijn geweldig voor enkele vergelijkingen, zoals het bovenstaande voorbeeld van het kijken naar een enkele cel. Maar wat als u een hele reeks cellen wilt doorlopen en op elke cel hetzelfde IF-statement wilt doen?

In dit geval heb je een FOR -lus nodig. 

Om dit te doen, moet u de lengte van een bereik gebruiken en die lengte doorlopen met het aantal rijen dat gegevens bevat.

Om dit te doen, moet u de bereik- en celvariabelen definiëren en deze doorlopen. U moet ook een teller definiëren, zodat u de resultaten naar de juiste rij kunt uitvoeren. Dus uw VBA -code zou eerst deze regel hebben.

Dim rng As Range, cel As Range (Dim rng As Range, cell As Range)
Dim rijTeller als geheel getal(Dim rowCounter as Integer)

Definieer de bereikgrootte als volgt. 

Set rng = Range(“B2:B7”)
rowCounter = 2

Ten slotte kunt u uw FOR -lus maken om door elke cel in dat bereik te stappen en de vergelijking te maken.

For Each cell In rng
   If cell.Value > 75 Then _
   Cells(rowCounter, 3) = "Pass" Else _
   Cells(rowCounter, 3) = "Fail"

   rowCounter = rowCounter + 1

Next cell

Zodra dit VBA-script is uitgevoerd, ziet u de resultaten in de eigenlijke spreadsheet.

VBA While-lussen(VBA While Loops)

Een While - lus(Loop) loopt ook door een reeks instructies, net als de FOR -lus, maar de voorwaarde dat de lus moet doorgaan, is een voorwaarde die waar blijft.

U kunt bijvoorbeeld dezelfde FOR -lus hierboven schrijven als een WHILE -lus, door simpelweg de rowCounter-variabele als volgt te gebruiken.

While rowCounter < rng.Count + 2
   If Cells(rowCounter, 2) > 75 Then _
   Cells(rowCounter, 3) = "Pass" Else _
   Cells(rowCounter, 3) = "Fail"
   rowCounter = rowCounter + 1
Wend

Opmerking: de rng.Count + 2 beëindigingslimiet is vereist omdat de rijteller begint bij 2 en moet eindigen op rij 7 waar de gegevens eindigen. De telling van het bereik (B2:B7) is echter slechts 6 en de While-lus eindigt pas als de teller GROTER(GREATER) is dan de teller - dus de laatste rowCounter-waarde moet 8 zijn (of rng.Count + 2).

U kunt de While-lus ook als volgt instellen:

While rowCounter <= rng.Count + 1

U kunt de bereiktelling (6) alleen met 1 verhogen, want zodra de rowCounter-variabele het einde van de gegevens bereikt (rij 7), kan de lus worden beëindigd.

VBA Do While en Do Until Loops(VBA Do While and Do Until Loops)

Do While- en Do Until-lussen zijn bijna identiek aan While-lussen, maar werken iets anders.

  • De While-lus(While Loop) controleert of een voorwaarde waar is aan het begin van de lus.
  • De Do-While Loop controleert of een voorwaarde waar is na het uitvoeren van de instructies in de lus.
  • De Do-Until Loop controleert na het uitvoeren van de lus of een voorwaarde nog steeds onwaar is.

In dit geval zou u de While-lus hierboven als volgt herschrijven als een Do-While-lus.

Do
   If Cells(rowCounter, 2) > 75 Then _
   Cells(rowCounter, 3) = "Pass" Else _
   Cells(rowCounter, 3) = "Fail"
   
   rowCounter = rowCounter + 1
Loop While rowCounter < rng.Count + 2

In dit geval verandert de logica niet veel, maar als u er zeker van wilt zijn dat de logische vergelijking plaatsvindt nadat alle instructies zijn uitgevoerd (waardoor ze allemaal minstens één keer kunnen worden uitgevoerd, ongeacht wat), dan is een Do-While of Do-Until loop is de juiste optie.

VBA Select Case Statements

Het laatste type logische instructie dat u moet begrijpen om uw VBA -code te structureren, zijn Select Case - instructies.

Laten we, gezien het bovenstaande voorbeeld, zeggen dat u een beoordelingsmethode wilt hebben die niet alleen geslaagd is. In plaats daarvan wil je een lettercijfer toekennen van A tot en met F.

U kunt dit doen met het volgende Select Case -statement:

For Each cell In rng
   
   Select Case cell

   Case 95 To 100
      Cells(rowCounter, 3) = "A"
   Case 85 To 94
      Cells(rowCounter, 3) = "B"
   Case 75 To 84
      Cells(rowCounter, 3) = "C"
   Case 65 To 74
      Cells(rowCounter, 3) = "D"
   Case 0 To 64
      Cells(rowCounter, 3) = "F"
   End Select

   rowCounter = rowCounter + 1

Next cell

De resulterende spreadsheet nadat dit VBA- script is uitgevoerd, ziet er als volgt uit.

Nu weet u alles wat u moet weten om VBA in uw Microsoft Office -toepassingen te gaan gebruiken.



About the author

Ik ben een computerprofessional met meer dan 10 jaar ervaring. In mijn vrije tijd help ik graag aan een bureau en leer ik kinderen internetten. Mijn vaardigheden omvatten veel dingen, maar het belangrijkste is dat ik weet hoe ik mensen kan helpen bij het oplossen van problemen. Als je iemand nodig hebt die je kan helpen met iets dringends of gewoon wat basistips wilt, neem dan contact met me op!



Related posts