Visual Basic for Applications ( VBA ) is een programmeertaal waarmee u de functionaliteit van Excel kunt uitbreiden en repetitieve taken kunt automatiseren. Met VBA kunt u macro's, formulieren, aangepaste functies en interactieve toepassingen maken. In dit artikel leert u de basisprincipes van VBA in Excel en hoe u het kunt gebruiken om eenvoudige of complexe bewerkingen uit te voeren.
Hoe krijg ik toegang tot VBA in Excel?

Om VBA in Excel te gebruiken, moet u het tabblad 'Ontwikkelaar' in het lint activeren. Volg hiervoor deze stappen:
- Klik op de knop Bestand en vervolgens op Opties.

- Klik in het venster Excel-opties op 'Lint aanpassen'.

- In de lijst met hoofdtabbladen vinkt u het vakje 'Ontwikkelaar' aan en klikt u vervolgens op 'OK'.
U ziet dan het tabblad Ontwikkelaar in het lint verschijnen. Dit tabblad bevat verschillende hulpmiddelen die verband houden met VBA, zoals de knop Visual Basic, de knop Macro opnemen en de knop Besturingselement invoegen.


Met de knop Visual Basic opent u de Visual Basic Editor (VBE), waarin u VBA-code kunt maken en bewerken. De knop Macro opnemen genereert automatisch VBA-code die de acties nabootst die u in de toepassing uitvoert. Met de knop Besturingselement invoegen kunt u interactieve elementen aan uw spreadsheet toevoegen, zoals knoppen, selectievakjes of vervolgkeuzelijsten.
Hoe schrijf ik VBA-code in Excel?
Om VBA-code in Excel te schrijven, moet u de Visual Basic Editor (VBE) gebruiken. Om deze te openen, klikt u op de knop Visual Basic op het tabblad Ontwikkelaar in het lint.
De VBE bestaat uit verschillende vensters:

- Het projectvenster toont de hiërarchische structuur van objecten die VBA-code bevatten. Als u bijvoorbeeld een werkmap hebt met de naam MyWorkbook.xlsm met twee bladen genaamd Sheet1 en Sheet2, ziet u de objecten Sheet1 en Sheet2 onder MyWorkbook.xlsm verschijnen, evenals een object met de naam ThisWorkbook.

- Het venster Eigenschappen toont de eigenschappen van het object dat in het venster Project is geselecteerd. Als u bijvoorbeeld het object Sheet1 selecteert, ziet u de eigenschappen ervan, zoals de naam (Name), de kleur (Tab.Color), de code (CodeName), enzovoort.

- In het venster Code wordt de VBA-code weergegeven die is gekoppeld aan het object dat is geselecteerd in het venster Project. Als u bijvoorbeeld het object Sheet1 selecteert, ziet u de VBA-code die wordt uitgevoerd wanneer u met het werkblad Sheet1 werkt.

- Het venster Direct toont de resultaten van de VBA-code of foutmeldingen. Als u bijvoorbeeld de functie MsgBox gebruikt om een bericht aan de gebruiker weer te geven, ziet u dat bericht in het venster Direct verschijnen.

Om VBA-code te schrijven, moet je bepaalde syntactische regels volgen:
- Elke instructie moet eindigen met een regelovergang of een dubbele punt (:).
- Trefwoorden in de VBA-taal moeten in hoofdletters of kleine letters worden geschreven, met uitzondering van de namen van objecten, eigenschappen of methoden, die hoofdlettergevoelig zijn.
- Opmerkingen moeten voorafgegaan worden door het apostrofteken (') of Rem en moeten op een aparte regel of na een instructie worden geschreven.
- Tekenreeksen moeten tussen dubbele aanhalingstekens (" ) staan.
- De rekenkundige operatoren zijn +, -, *, / en ^ (macht).
- De logische operatoren zijn EN, OF, NIET, XOR en Eqv.
- De vergelijkingsoperatoren zijn =, <>, <, <=, > en >=.
- De vooraf gedefinieerde constanten zijn True, False, Null, Empty, Nothing en vbNullString.
Hier volgt een voorbeeld van VBA-code die een bericht aan de gebruiker weergeeft:
Sub Hello() ' Dit is een opmerking MsgBox "Hallo, ik ben Bing!" ' Geeft een bericht weer End Sub
Hoe gebruik je Excel-spreadsheetfuncties in VBA?
Je kunt de meeste spreadsheetfuncties van Excel gebruiken in je VBA-instructies. Hiervoor moet je de volgende syntaxis gebruiken:
Applicatie.Werkbladfunctie.Functienaam(argument1, argument2, ...)
Als u bijvoorbeeld de SUM-functie wilt gebruiken om de som van de waarden in het bereik A1:A10 te berekenen, kunt u het volgende schrijven:
Sub Sum() Dim result As Double ' Declareert een variabele van het type Double result = Application.WorksheetFunction.Sum(Range("A1:A10")) ' Kent het resultaat van de SUM-functie toe aan de variabele MsgBox result ' Geeft het resultaat weer End Sub
Je kunt ook aangepaste functies gebruiken die je zelf in VBA maakt. Hiervoor moet je de volgende syntaxis gebruiken:
Functie FunctionName(argument1 As Type1, argument2 As Type2, ...) As ReturnType ' Declaraties en instructies FunctionName = expressie ' Wijs het resultaat dat aan de functie moet worden geretourneerd toe End Function
Als je bijvoorbeeld een functie wilt maken die het kwadraat van een getal berekent, kun je het volgende schrijven:
Functie Square(number As Double) As Double ' Declareert een functie die een getal als argument neemt en een getal retourneert Square = number * number ' Kent het kwadraat van het getal toe aan de functie End Function
Je kunt deze functie vervolgens gebruiken in je VBA-instructies of in je Excel-formules. Bijvoorbeeld:
Sub Test() Dim x As Double ' Declareert een variabele van het type Double x = 5 ' Kent de waarde 5 toe aan de variabele MsgBox Square(x) ' Toont het kwadraat van x End Sub
Hoe maak ik macro's in Excel?
Een macro is een reeks VBA-instructies die eenmalig worden uitgevoerd. U kunt macro's maken om terugkerende of complexe taken in Excel te automatiseren. Er zijn twee manieren om macro's te maken: door ze op te nemen of door ze te schrijven.
Neem een macro op
Het opnemen van een macro houdt in dat u de knop 'Macro opnemen' op het tabblad 'Ontwikkelaar' in het lint gebruikt om de acties die u in Excel uitvoert vast te leggen en om te zetten in VBA-code. Dit is de eenvoudigste en snelste manier om een macro te maken, maar het kan leiden tot slecht geoptimaliseerde of overbodige code.
Volg deze stappen om een macro op te nemen:
- Klik op de knop 'Macro opnemen' in het tabblad 'Ontwikkelaar' van het lint.

- In het dialoogvenster Macro opnemen kunt u uw macro een naam geven, eventueel een sneltoets kiezen, een locatie selecteren om uw macro op te slaan (actieve werkmap, nieuwe werkmap of persoonlijke werkmap) en eventueel een beschrijving toevoegen.

- Klik op OK om de opname te starten.
- Voer de gewenste acties uit in Excel. U kunt bijvoorbeeld een macro maken die een tabel opmaakt, selecteert, een stijl toepast, alfabetisch sorteert, enzovoort.
- Klik op de knop 'Opname stoppen' in het tabblad 'Ontwikkelaar' van het lint om de opname te beëindigen.
Je kunt je macro vervolgens uitvoeren met de door jou gekozen sneltoets, door op de knop Macro's in het tabblad Ontwikkelaar van het lint te klikken, of door de knop Uitvoeren in de VBE te gebruiken.
Schrijf een macro
Het schrijven van een macro houdt in dat je de VBE gebruikt om direct de VBA-code in te typen die overeenkomt met de acties die je wilt automatiseren. Het is de meest flexibele en krachtige methode om een macro te maken, maar vereist wel programmeerkennis.
Volg deze stappen om een macro te schrijven:
- Open de VBE door op de knop Visual Basic te klikken in het tabblad Ontwikkelaar van het lint.

- Selecteer in het projectvenster het object waarin u uw macro wilt opslaan (actieve werkmap, nieuwe werkmap of persoonlijke werkmap).
- Typ in het codevenster de VBA-code die overeenkomt met de acties die u wilt automatiseren. Als u bijvoorbeeld een macro wilt maken die een tabel opmaakt, typt u de volgende code:
Sub FormatTable() ' Selecteert de tabel Range("A1:D10").Select ' Past een stijl toe op de tabel Selection.Style = "Tabel 1" ' Sorteert de tabel alfabetisch op kolom A ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("A2:A10") , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Sheet1").Sort .SetRange Range("A1:D10") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub
Je kunt je macro vervolgens uitvoeren met de knop 'Uitvoeren' in de VBE of door er een sneltoets of besturingselement aan toe te wijzen.

Veelgestelde vragen
Hieronder vindt u een aantal veelgestelde vragen over het gebruik van VBA in Excel:
Wat is VBA en waarom zou je het gebruiken?
VBA is de versie van Visual Basic die bij Microsoft Office wordt geleverd. Het is een objectgeoriënteerde programmeertaal met een syntaxis die lijkt op natuurlijke taal. Met VBA kunt u via code toegang krijgen tot de objecten, eigenschappen en methoden van Excel en deze manipuleren. Dit geeft u nauwkeurigere en krachtigere controle over Excel dan via de grafische interface.
Het gebruik van VBA biedt verschillende voordelen:
- Je kunt repetitieve of vervelende taken automatiseren, zoals het opschonen van gegevens, het formatteren van tabellen, het maken van grafieken, enzovoort.
- Je kunt Excel aanpassen aan je specifieke behoeften door functies toe te voegen die niet in de software aanwezig zijn of door het gedrag ervan te wijzigen.
- Je kunt met de gebruiker communiceren via dialoogvensters, formulieren of aangepaste berichten.
- Je kunt Excel integreren met andere Office-toepassingen of externe gegevensbronnen, zoals Outlook, Word, Access, SQL Server, enzovoort.
Hoe kan ik VBA-code in Excel debuggen?
Om VBA-code in Excel te debuggen, kunt u VBE-hulpmiddelen gebruiken zoals breekpunten, stapsgewijs uitvoeren, het venster 'Watch' of het venster 'Locales'. Met deze hulpmiddelen kunt u de code-uitvoering controleren, variabelewaarden bekijken en fouten opsporen.
Hoe bescherm ik VBA-code in Excel?
Om VBA-code in Excel te beschermen, kunt u het VBA-project vergrendelen met een wachtwoord. Volg hiervoor deze stappen:
- Open de VBE door op de knop Visual Basic te klikken in het tabblad Ontwikkelaar van het lint.
- Klik in het projectvenster met de rechtermuisknop op de naam van het VBA-project en kies 'VBA-projecteigenschappen'.
- Klik in het dialoogvenster met de projecteigenschappen van VBA op het tabblad Beveiliging.
- Vink het vakje aan om het project te vergrendelen, voer een wachtwoord in en bevestig dit.
- Klik op OK om het dialoogvenster te sluiten.
- Sla het werkblad op en sluit het.
Hoe kan ik een macro uitvoeren bij het openen of sluiten van een werkmap?
Om een macro uit te voeren wanneer een werkmap wordt geopend of gesloten, moet u de gebeurtenissen Workbook_Open of Workbook_BeforeClose gebruiken. Volg hiervoor deze stappen:
- Open de VBE door op de knop Visual Basic te klikken in het tabblad Ontwikkelaar van het lint.
- Selecteer in het projectvenster het object ThisWorkbook onder de werkmapnaam.
- In het codevenster selecteert u 'Werkmap' in de vervolgkeuzelijst 'Object' linksboven.
- Kies 'Openen' of 'Voorafgaand aan sluiten' in het vervolgkeuzemenu 'Procedure' rechtsboven.
- Typ de VBA-code waarmee u de macro aanroept die u wilt uitvoeren. Bijvoorbeeld:
Private Sub Workbook_Open() ' Voert de macro Bonjour uit wanneer het werkblad wordt geopend Bonjour End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) ' Voert de macro AuRevoir uit wanneer het werkblad wordt gesloten AuRevoir End Sub
Hoe maak je een formulier in Excel met VBA?
Om een formulier in Excel te maken met behulp van VBA, moet u de VBA-formulierontwerper gebruiken. Volg hiervoor deze stappen:
- Open de VBE door op de knop Visual Basic te klikken in het tabblad Ontwikkelaar van het lint.
- Klik in het projectvenster met de rechtermuisknop op de naam van het VBA-project en kies 'Invoegen' en vervolgens 'Gebruikersformulier'.
- Er wordt een nieuw UserForm-venster geopend. U kunt besturingselementen zoals labels, tekstvakken, knoppen, enzovoort toevoegen door ze vanuit de toolbox te slepen.
- U kunt de eigenschappen van de besturingselementen wijzigen in het venster Eigenschappen of VBA-code schrijven om hun gebeurtenissen af te handelen in het venster Code.
- Om het formulier weer te geven, kunt u de Show-methode gebruiken. Bijvoorbeeld:
Sub ShowForm() ' Geeft het formulier UserForm1 weer UserForm1.Show End Sub
Hoe maak je een aangepaste functie in Excel met behulp van VBA?
Om een aangepaste functie in Excel te maken met behulp van VBA, moet u de volgende syntaxis gebruiken:
Functie FunctionName(argument1 As Type1, argument2 As Type2, ...) As ReturnType ' Declaraties en instructies FunctionName = expressie ' Wijs het resultaat dat aan de functie moet worden geretourneerd toe End Function
Als je bijvoorbeeld een functie wilt maken die het kwadraat van een getal berekent, kun je het volgende schrijven:
Functie Square(number As Double) As Double ' Declareert een functie die een getal als argument neemt en een getal retourneert Square = number * number ' Kent het kwadraat van het getal toe aan de functie End Function
Je kunt deze functie vervolgens gebruiken in je VBA-instructies of in je Excel-formules. Bijvoorbeeld:
Sub Test() Dim x As Double ' Declareert een variabele van het type Double x = 5 ' Kent de waarde 5 toe aan de variabele MsgBox Square(x) ' Toont het kwadraat van x End Sub
Je kunt ook aangepaste functies gebruiken die je zelf in VBA maakt. Hiervoor moet je de volgende syntaxis gebruiken:
Functie FunctionName(argument1 As Type1, argument2 As Type2, ...) As ReturnType ' Declaraties en instructies FunctionName = expressie ' Wijs het resultaat dat aan de functie moet worden geretourneerd toe End Function
Als je bijvoorbeeld een functie wilt maken die het kwadraat van een getal berekent, kun je het volgende schrijven:
Functie Square(number As Double) As Double ' Declareert een functie die een getal als argument neemt en een getal retourneert Square = number * number ' Kent het kwadraat van het getal toe aan de functie End Function
Je kunt deze functie vervolgens gebruiken in je VBA-instructies of in je Excel-formules. Bijvoorbeeld:
Sub Test() Dim x As Double ' Declareert een variabele van het type Double x = 5 ' Kent de waarde 5 toe aan de variabele MsgBox Square(x) ' Toont het kwadraat van x End Sub
Of
=SQUARE(A1) ' Berekent het kwadraat van de waarde in cel A1
Conclusie
In dit artikel heb je geleerd hoe je Visual Basic for Applications (VBA) in Excel kunt gebruiken. Je hebt gezien wat VBA is en waarom je het zou moeten gebruiken, hoe je VBA in Excel kunt openen, hoe je VBA-code in Excel kunt schrijven, hoe je Excel-werkbladfuncties in VBA kunt gebruiken, hoe je macro's in Excel kunt maken met VBA, hoe je formulieren in Excel kunt maken met VBA en hoe je aangepaste functies in Excel kunt maken met VBA. Een van de aangepaste functies die je met VBA kunt maken, is de functie om aftrekkingen in Excel uit te voeren . Je kunt nu de programmeerkracht van VBA benutten om Excel aan te passen en te automatiseren naar jouw wensen.
![[GetPaidStock.com]-648864a469b9a](https://tt-hardware.com/wp-content/uploads/2023/06/GetPaidStock.com-648864a469b9a-696x400.jpg)


