Visual Basic for Application ( 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 deze kunt gebruiken om eenvoudige of complexe bewerkingen uit te voeren.
Hoe krijg ik toegang tot VBA in Excel?
Om toegang te krijgen tot VBA in Excel, moet u het tabblad Ontwikkelaars op het lint inschakelen. Om dit te doen, volgt u deze stappen:
- Klik op de knop Bestand en vervolgens op Opties.
- Klik in het venster Excel-opties op Lint aanpassen.
- Vink in de lijst met hoofdtabbladen het vakje Ontwikkelaar aan en klik vervolgens op OK.
U ziet dan het tabblad Ontwikkelaar verschijnen in het lint. Dit tabblad bevat verschillende VBA-gerelateerde hulpmiddelen, zoals de Visual Basic-knop, de knop Macro opnemen of de knop Besturing invoegen.
Met de Visual Basic-knop wordt de Visual Basic Editor (VBE) geopend, waar u VBA-code kunt maken en bewerken. De knop Macro opnemen genereert automatisch VBA-code die de acties reproduceert die u in de toepassing uitvoert. Met de knop Besturingselement invoegen kunt u interactieve elementen aan uw werkblad toevoegen, zoals knoppen, selectievakjes of vervolgkeuzelijsten.
Hoe schrijf je VBA-code in Excel?
Om VBA-code in Excel te schrijven, moet u de Visual Basic Editor (VBE) gebruiken. Om het te openen, klikt u op de Visual Basic-knop op het tabblad Ontwikkelaars van 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 met de namen Sheet1 en Sheet2, ziet u de objecten Sheet1 en Sheet2 en een object met de naam ThisWorkbook verschijnen onder MyWorkbook.xlsm.
- In het venster Eigenschappen worden de eigenschappen weergegeven van het object dat in het projectvenster is geselecteerd. Als u bijvoorbeeld het object Blad1 selecteert, ziet u de eigenschappen ervan, zoals de naam (Name), de kleur (Tab.Color), de code (CodeName), enzovoort.
- In het codevenster wordt de VBA-code weergegeven die is gekoppeld aan het object dat is geselecteerd in het projectvenster. Als u bijvoorbeeld het object Blad1 selecteert, ziet u de VBA-code die wordt uitgevoerd wanneer u met het werkblad Blad1 werkt.
- In het venster Direct worden VBA-coderesultaten of foutmeldingen weergegeven. Als u bijvoorbeeld de functie MsgBox gebruikt om een bericht aan de gebruiker weer te geven, ziet u het bericht verschijnen in het venster Direct.
Om VBA-code te schrijven, moet u bepaalde syntaxisregels volgen:
- Elke verklaring moet eindigen met een nieuwe regel of een dubbele punt (:).
- Trefwoorden in de VBA-taal moeten in hoofdletters of kleine letters worden geschreven, maar niet in de namen van objecten, eigenschappen of methoden, die hoofdlettergevoelig zijn.
- Opmerkingen moeten worden voorafgegaan door de apostrof (') of het Rem-teken en moeten op een aparte regel of na een verklaring worden geschreven.
- Tekenreeksen moeten tussen dubbele aanhalingstekens (“) staan.
- De rekenkundige operatoren zijn +, -, *, / en ^ (macht).
- De logische operatoren zijn And, Or, Not, Xor en Eqv.
- De vergelijkingsoperatoren zijn =, <>, <, <=, > en >=.
- De vooraf gedefinieerde constanten zijn True, False, Null, Empty, Nothing en vbNullString.
Hier is een voorbeeld van VBA-code die een bericht aan de gebruiker weergeeft:
Sub Hello() ' Dit is een MsgBox-opmerking "Hallo, ik ben Bing!" ' Geeft een End Sub-bericht weer
Hoe gebruik ik Excel-spreadsheetfuncties in VBA?
U kunt de meeste Excel-spreadsheetfuncties gebruiken in uw VBA-instructies. Om dit te doen, moet u de volgende syntaxis gebruiken:
Application.WorksheetFunction.FunctionName(argument1, argument2, ...)
Als u bijvoorbeeld de functie SUM wilt gebruiken om de som van de waarden in het bereik A1:A10 te berekenen, kunt u schrijven:
Sub Sum() Dim resultaat As Double ' Declareert een variabele van het type Double result = Application.WorksheetFunction.Sum(Range("A1:A10")) ' Wijst het resultaat van de SUM-functie toe aan de variabele MsgBox resultaat ' Geeft het resultaat weer End Sub
U kunt ook aangepaste functies gebruiken die u zelf in VBA maakt. Om dit te doen, moet u de volgende syntaxis gebruiken:
Functie FunctieNaam(argument1 As Type1, argument2 As Type2, ...) As ReturnType ' Verklaringen en instructies FunctieNaam = expressie ' Wijst aan de functie het resultaat toe dat moet worden geretourneerd. Eindfunctie
Als u bijvoorbeeld een functie wilt maken die het kwadraat van een getal berekent, kunt u schrijven:
Functie Vierkant(getal As Double) As Double ' Declareert een functie die een getal als argument neemt en een getal retourneert Vierkant = getal * getal ' Wijst het kwadraat van het getal toe aan de functie Eindfunctie
U kunt deze functie vervolgens gebruiken in uw VBA-instructies of in uw Excel-formules. Bijvoorbeeld :
Sub Test() Dim x As Double ' Declareert een variabele van het type Double x = 5 ' Wijst de waarde 5 toe aan de variabele MsgBox Square(x) ' Geeft het kwadraat van x End Sub weer
Hoe macro's maken in Excel?
Een macro is een reeks VBA-instructies die allemaal tegelijk 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
Bij het opnemen van een macro gebruikt u de knop Macro opnemen op het tabblad Ontwikkelaars van het lint om acties die u in Excel uitvoert vast te leggen en deze naar VBA-code te converteren. Dit is de eenvoudigste en snelste manier om een macro te maken, maar het kan slecht geoptimaliseerde of redundante code opleveren.
Volg deze stappen om een macro op te nemen:
- Klik op de knop Macro opnemen op het tabblad Ontwikkelaars van het lint.
- Geef in het dialoogvenster Macro opnemen een naam aan uw macro, kies desgewenst een sneltoets, selecteer een locatie om uw macro op te slaan (actieve werkmap, nieuwe werkmap of persoonlijke werkmap) en schrijf desgewenst een beschrijving.
- Klik op OK om de opname te starten.
- Voer de acties uit die u wilt automatiseren in Excel. Als u bijvoorbeeld een macro wilt maken die een tabel opmaakt, selecteert u de tabel, geeft u deze een stijl, sorteert u deze alfabetisch, enz.
- Klik op de knop Opname stoppen op het tabblad Ontwikkelaars van het lint om de opname te beëindigen.
U kunt vervolgens uw macro uitvoeren met de door u gekozen sneltoets, door op de knop Macro's te klikken op het tabblad Ontwikkelaars van het lint, of door de knop Uitvoeren in de VBE te gebruiken.
Schrijf een macro
Als u een macro schrijft, gebruikt u de VBE om rechtstreeks de VBA-code te typen die overeenkomt met de acties die u wilt automatiseren. Dit is de meest flexibele en krachtige methode voor het maken van een macro, maar vereist programmeerkennis.
Volg deze stappen om een macro te schrijven:
- Open de VBE door op de Visual Basic-knop op het tabblad Ontwikkelaars van het lint te klikken.
- 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 = "Table 1" ' Sorteert de tabel alfabetisch op kolom A ActiveWorkbook.Worksheets("Sheet1" ). Sort.SortFields.Clear ActiveWorkbook.Worksheets("Blad1").Sort.SortFields.Add Key:=Range("A2:A10") _ , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal met ActiveWorkbook .Worksheets ("Blad1").Sort .SetRange Range("A1:D10") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub
U kunt uw macro vervolgens uitvoeren door de knop Uitvoeren in de VBE te gebruiken of door er een sneltoets of besturingselement aan toe te wijzen.
Veelgestelde vragen
Hier volgen enkele 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 wordt meegeleverd met Microsoft Office. Het is een objectgeoriënteerde die een syntaxis gebruikt die dicht bij de natuurlijke taal ligt. Met VBA kunt u de objecten, eigenschappen en methoden van Excel openen en manipuleren met behulp van code. Je bestuurt Excel dus op een fijnere en krachtigere manier dan via de grafische interface.
Het gebruik van VBA heeft verschillende voordelen:
- U kunt repetitieve of vervelende taken automatiseren, zoals het opschonen van gegevens, het opmaken van tabellen, het maken van grafieken en meer.
- U kunt Excel aanpassen aan uw specifieke behoeften, functies toevoegen die niet in de software voorkomen of het gedrag ervan wijzigen.
- U kunt met de gebruiker communiceren via dialoogvensters, formulieren of aangepaste berichten.
- U kunt Excel integreren met andere Office-toepassingen of externe gegevensbronnen, zoals Outlook, Word, Access, SQL Server, enz.
Hoe debug je VBA-code in Excel?
Om VBA-code in Excel te debuggen, kunt u VBE-hulpmiddelen gebruiken, zoals breekpunten, stappen, Controlevenster of Landinstellingenvenster. Met deze tools kunt u de uitvoering van code controleren, variabelewaarden controleren en fouten opsporen.
Hoe VBA-code in Excel beschermen?
Om VBA-code in Excel te beschermen, kunt u het VBA-project vergrendelen met een wachtwoord. Om dit te doen, volgt u deze stappen:
- Open de VBE door op de Visual Basic-knop op het tabblad Ontwikkelaars van het lint te klikken.
- Klik in het projectvenster met de rechtermuisknop op de VBA-projectnaam en kies VBA-projecteigenschappen.
- Klik in het dialoogvenster VBA-projecteigenschappen op het tabblad Beveiliging.
- Vink het vakje Project vergrendelen voor weergave aan, typ een wachtwoord en bevestig dit.
- Klik op OK om het dialoogvenster te sluiten.
- Bewaar en sluit de werkmap.
Hoe voer ik een macro uit bij het openen of sluiten van een werkmap?
Als u een macro wilt uitvoeren bij het openen of sluiten van een werkmap, moet u de gebeurtenissen Workbook_Open of Workbook_BeforeClose gebruiken. Om dit te doen, volgt u deze stappen:
- Open de VBE door op de Visual Basic-knop op het tabblad Ontwikkelaars van het lint te klikken.
- Selecteer in het projectvenster het object ThisWorkbook onder de naam van de werkmap.
- Kies in het codevenster Werkmap in de vervolgkeuzelijst Object linksboven.
- Kies Openen of VóórSluiten in de vervolgkeuzelijst Procedure rechtsboven.
- Typ de VBA-code die de macro aanroept die u wilt uitvoeren. Bijvoorbeeld :
Private Sub Workbook_Open() ' Voert de Hello-macro uit bij het openen van de werkmap Hello End Sub Private Sub Workbook_BeforeClose (Cancel As Boolean) ' Voert de AuRevoir-macro uit bij het sluiten van de werkmap AuRevoir End Sub
Hoe maak je een formulier in Excel met VBA?
Om een formulier in Excel met VBA te maken, moet u de formulierontwerper van VBE gebruiken. Om dit te doen, volgt u deze stappen:
- Open de VBE door op de Visual Basic-knop op het tabblad Ontwikkelaars van het lint te klikken.
- Klik in het projectvenster met de rechtermuisknop op de VBA-projectnaam en kies Invoegen en vervolgens UserForm.
- Er wordt een nieuw UserForm-venster geopend. U kunt er bedieningselementen zoals labels, tekstvakken, knoppen, enz. aan toevoegen. door ze uit de gereedschapskist te slepen.
- U kunt de eigenschappen van besturingselementen in het venster Eigenschappen wijzigen of VBA-code schrijven om hun gebeurtenissen in het codevenster af te handelen.
- Om het formulier weer te geven, kunt u de Show-methode gebruiken. Bijvoorbeeld :
Sub ShowForm() ' Toont het formulier UserForm1 UserForm1.Show End Sub
Hoe maak je een aangepaste functie in Excel met VBA?
Om een aangepaste functie in Excel met VBA te maken, moet u de volgende syntaxis gebruiken:
Functie FunctieNaam(argument1 As Type1, argument2 As Type2, ...) As ReturnType ' Verklaringen en instructies FunctieNaam = expressie ' Wijst aan de functie het resultaat toe dat moet worden geretourneerd. Eindfunctie
Als u bijvoorbeeld een functie wilt maken die het kwadraat van een getal berekent, kunt u schrijven:
Functie Vierkant(getal As Double) As Double ' Declareert een functie die een getal als argument neemt en een getal retourneert Vierkant = getal * getal ' Wijst het kwadraat van het getal toe aan de functie Eindfunctie
U kunt deze functie vervolgens gebruiken in uw VBA-instructies of in uw Excel-formules. Bijvoorbeeld :
Sub Test() Dim x As Double ' Declareert een variabele van het type Double x = 5 ' Wijst de waarde 5 toe aan de variabele MsgBox Square(x) ' Geeft het kwadraat van x End Sub weer
U kunt ook aangepaste functies gebruiken die u zelf in VBA maakt. Om dit te doen, moet u de volgende syntaxis gebruiken:
Functie FunctieNaam(argument1 As Type1, argument2 As Type2, ...) As ReturnType ' Verklaringen en instructies FunctieNaam = expressie ' Wijst aan de functie het resultaat toe dat moet worden geretourneerd. Eindfunctie
Als u bijvoorbeeld een functie wilt maken die het kwadraat van een getal berekent, kunt u schrijven:
Functie Vierkant(getal As Double) As Double ' Declareert een functie die een getal als argument neemt en een getal retourneert Vierkant = getal * getal ' Wijst het kwadraat van het getal toe aan de functie Eindfunctie
U kunt deze functie vervolgens gebruiken in uw VBA-instructies of in uw Excel-formules. Bijvoorbeeld :
Sub Test() Dim x As Double ' Declareert een variabele van het type Double x = 5 ' Wijst de waarde 5 toe aan de variabele MsgBox Square(x) ' Geeft het kwadraat van x End Sub weer
Of
=Vierkant(A1) ' Berekent het kwadraat van de waarde van cel A1
Conclusie
In dit artikel hebt u geleerd hoe u Visual Basic for Application (VBA) in Excel kunt gebruiken. U hebt gezien wat VBA is en waarom u het moet gebruiken, hoe u toegang krijgt tot VBA in Excel, hoe u VBA-code schrijft in Excel, hoe u Excel-werkbladfuncties gebruikt in VBA, hoe u macro's maakt in Excel met VBA, hoe u formulieren maakt in Excel met VBA en hoe u aangepaste functies kunt maken in Excel met VBA. Een van de aangepaste functies die u met VBA kunt maken, is het uitvoeren van aftrekkingen in Excel . U kunt nu de programmeerkracht van VBA benutten om Excel naar wens aan te passen en te automatiseren.