Wat is vba in excel? (basis tot geavanceerd)

Wat is VBA?

VBA (Visual Basic for Applications) is een programmeertaal waarmee je vrijwel alles in Excel kunt automatiseren. Met VBA kunt u naar Excel-objecten verwijzen en de daaraan gekoppelde eigenschappen, methoden en gebeurtenissen gebruiken. U kunt bijvoorbeeld een draaitabel maken, een diagram invoegen en een berichtvenster voor de gebruiker weergeven met behulp van een macro.

Het gekke is:

Voor alle taken die u handmatig in enkele minuten uitvoert, kan VBA dit binnen enkele seconden doen, met een enkele klik, met dezelfde precisie. Zelfs u kunt VBA-codes schrijven die automatisch kunnen worden uitgevoerd wanneer u een document, werkmap of zelfs op een specifiek tijdstip opent.

Ik zal u een concreet voorbeeld laten zien:

Elke ochtend als ik naar kantoor ga, is het eerste wat ik moet doen een draaitabel maken voor de verkopen van de maand tot nu toe en deze aan mijn baas presenteren. Dit omvat elke dag dezelfde stappen. Maar toen ik me realiseerde dat ik VBA kon gebruiken om een draaitabel te maken en deze met slechts één klik in te voegen, bespaarde het me 5 minuten per dag.

Macrocodes om een draaitabel te maken

Dit is hoe VBA werkt

VBA is een objectgeoriënteerde taal en als objectgeoriënteerde taal structureren we in VBA onze codes zo dat we objecten gebruiken en vervolgens hun eigenschappen definiëren.

Simpel gezegd definiëren we eerst het object en vervolgens de activiteit die we willen uitvoeren. Er zijn objecten, verzamelingen, methoden en eigenschappen die u in VBA kunt gebruiken om uw code te schrijven.

>Mis dit niet<

Stel dat u iemand wilt vertellen een doos te openen. De woorden die u zou gebruiken zouden zijn: “Open de doos”. Het is gewoon Engels, nietwaar? Maar als het gaat om VBA en het schrijven van een macro, zal het zijn:

 Box.Open

Zoals je kunt zien, is de bovenstaande code gestart met het vak dat hier ons doel is, daarna hebben we hiervoor de “Open” -methode gebruikt. Laten we wat specifieker worden, bijvoorbeeld of u de doos wilt openen die ROOD gekleurd is. En hiervoor zal de code zijn:

 Boxes(“Red”).Open

In de bovenstaande code zijn dozen de verzameling en open de methode. Als u meerdere dozen heeft, definiëren we hier een specifieke doos. Hier is een andere manier:

 Box(“Red”).Unlock = True

In de bovenstaande code zijn de vakken opnieuw de verzameling en is Ontgrendelen de eigenschap die is ingesteld op TRUE.

Waar wordt VBA voor gebruikt in Excel?

In Excel kun je VBA voor verschillende dingen gebruiken. Hier zijn een paar:

  • Gegevens invoeren : u kunt gegevens invoeren in een cel, een celbereik. U kunt ook gegevens van de ene sectie naar de andere kopiëren en plakken.
  • Taakautomatisering : u kunt taken automatiseren die veel tijd vergen. Het beste voorbeeld dat ik kan geven is het gebruik van een macro om een draaitabel te maken.
  • Maak een aangepaste Excel-functie : Met VBA kunt u ook een aangepaste, door de gebruiker gedefinieerde functie maken en deze in het werkblad gebruiken.
  • Invoegtoepassingen maken : in Excel kunt u uw VBA-codes omzetten in invoegtoepassingen en deze ook met anderen delen.
  • Integreren met andere Microsoft-applicaties : U kunt Excel ook integreren met andere Microsoft-applicaties. U kunt bijvoorbeeld gegevens in een tekstbestand invoeren.

Basisbeginselen van Excel-programmeren

1. Werkwijze

Een procedure in VBA is een reeks codes of een enkele coderegel die een specifieke activiteit uitvoert.

  1. SUB : De Sub-procedure kan acties uitvoeren, maar retourneert geen waarde (maar u kunt een object gebruiken om die waarde te verkrijgen).
  2. Functie : Met behulp van de functieprocedure maakt u uw functie, die u kunt gebruiken in het spreadsheet of de andere SUB- en FUNCTION-procedures (zie dit: VBA-functie ).

2. Variabelen en constanten

Je hebt variabelen en constanten nodig om waarden meerdere keren in code te gebruiken.

  • Variabele : Een variabele kan een waarde opslaan, hij heeft een naam, u moet het gegevenstype definiëren en u kunt de waarde die hij opslaat wijzigen. Zoals de naam al doet vermoeden, heeft “VARIABLE” geen vaste waarde. Het is als een opbergdoos die in het systeem wordt opgeslagen.
  • Constante : Een constante kan ook een waarde opslaan, maar u kunt de waarde niet wijzigen terwijl u de code uitvoert.

3. Gegevenstypen

U moet het gegevenstype voor VARIABELEN en CONSTANTEN declareren.

define data type

Wanneer u het gegevenstype voor een variabele of constante opgeeft, wordt de geldigheid van uw gegevens gegarandeerd. Als u het gegevenstype weglaat, past VBA het gegevenstype Variant toe op uw variabele (dit is het meest flexibel), VBA raadt niet wat het gegevenstype zou moeten zijn.

Tip: Expliciete VBA-optie

4. Objecten, eigenschappen en methoden

Visual Basic for Applications is een objectgeoriënteerde taal, en om er het maximale uit te halen; u moet Excel-objecten begrijpen.

De werkmap die u in Excel gebruikt, bevat verschillende objecten, en bij al deze objecten zijn er verschillende eigenschappen waartoe u toegang heeft en methoden die u kunt gebruiken.

5. Evenementen

Elke keer dat u iets in Excel doet, is het een gebeurtenis: voer een waarde in een cel in, voeg een nieuw werkblad in of voeg een diagram in. Hieronder vindt u de classificatie van gebeurtenissen op basis van objecten:

  1. Toepassingsgebeurtenissen: deze gebeurtenissen zijn gekoppeld aan de Excel-toepassing zelf.
  2. Werkmapgebeurtenissen: deze gebeurtenissen zijn gekoppeld aan acties die plaatsvinden in een werkmap.
  3. Werkbladgebeurtenissen: deze gebeurtenissen zijn gekoppeld aan de actie die in een werkblad plaatsvindt.
  4. Grafiekgebeurtenissen: deze gebeurtenissen zijn gekoppeld aan grafiekbladen (die verschillen van werkbladen).
  5. Gebruikersformuliergebeurtenissen: deze gebeurtenissen zijn gekoppeld aan de actie die plaatsvindt met een gebruikersformulier.
  6. OnTime-gebeurtenissen: OnTime-gebeurtenissen zijn gebeurtenissen die op een specifiek tijdstip code kunnen activeren.
  7. OnKey-gebeurtenissen: OnKey-gebeurtenissen zijn gebeurtenissen die een code kunnen activeren wanneer een bepaalde toets wordt ingedrukt.

6. Reikwijdte

Het bereikobject is de meest gebruikelijke en populaire manier om naar een bereik in uw VBA-codes te verwijzen. U moet naar het celadres verwijzen, ik zal u de syntaxis vertellen.

 Worksheets(“Sheet1”).Range(“A1”)

7. Voorwaarden

Net als elke andere programmeertaal kun je ook codes schrijven om de omstandigheden in VBA te testen. Hiermee kunt u dit op twee verschillende manieren doen.

  • IF THEN ELSE : Dit is een IF-instructie die u kunt gebruiken om een voorwaarde te testen en vervolgens een regel code uit te voeren als die voorwaarde TRUE is. U kunt ook nestvoorwaarden schrijven met
  • SELEC‌T‌ CASE : In het geselecteerde geval kunt u een voorwaarde opgeven en vervolgens verschillende testresultaatgevallen om verschillende coderegels uit te voeren. Het is iets gestructureerder dan de IF-instructie.

8. VBA-lussen

U kunt codes schrijven die een actie in VBA kunnen herhalen en herhalen, en er zijn verschillende manieren om op deze manier code te schrijven.

  • For Next : Het beste geschikt voor het gebruik van For Next is wanneer u een reeks acties een vast aantal keren wilt herhalen.
  • Voor elke volgende : Het is perfect om te gebruiken als u een groep objecten uit een verzameling objecten wilt herhalen.
  • Do While Loop: Het simpele idee achter de Do While Loop is om een activiteit uit te voeren terwijl een voorwaarde waar is.
  • Do Until Loop: In de Do Until Loop voert VBA een lus uit en blijft deze uitvoeren als de voorwaarde FALSE is.

9. Invoervak en berichtenvenster

  • Invoervak : Invoervak is een functie die een invoervak aan de gebruiker weergeeft en een antwoord verzamelt.
  • Berichtenvenster : Berichtenvenster helpt u een bericht aan de gebruiker weer te geven, maar u hebt de mogelijkheid om knoppen aan het berichtvenster toe te voegen om het antwoord van de gebruiker te krijgen.

10. Fouten

Excel heeft pech als het gaat om programmeerfouten, en je moet er hoe dan ook mee omgaan.

  1. Syntaxisfouten : dit lijken op typefouten die u maakt tijdens het schrijven van codes, maar VBA kan u helpen door deze fouten te melden.
  2. Compilatiefouten: deze treden op wanneer u code schrijft om een activiteit uit te voeren, maar die activiteit is ongeldig.
  3. Runtimefouten : er treedt een RUNTIME-fout op tijdens het uitvoeren van code. Het stopt de code en geeft het foutdialoogvenster weer.
  4. Logische fout : het is geen fout maar een fout tijdens het schrijven van de code en kan soms problemen opleveren bij het vinden en repareren ervan.

Schrijf een macro (VBA-programma) in Excel

Ik ben er sterk van overtuigd dat wanneer iemand in Excel begint te programmeren, HIJ/ZIJ steeds meer codes vanaf het begin moet schrijven. Hoe meer codes u helemaal opnieuw schrijft, hoe beter u begrijpt hoe VBA werkt.

Maar je moet beginnen met het schrijven van eenvoudige codes in plaats van in complexe codes te duiken. Dit is WAAROM ik niet wil dat je nu aan iets ingewikkelds denkt.

Je kunt zelfs macrocode schrijven om een draaitabel te maken, maar op dit moment wil ik niet dat je zo ver nadenkt. Laten we eens nadenken over een activiteit die u in uw spreadsheet wilt uitvoeren en daar code voor schrijven.

  1. Ga naar het tabblad Ontwikkelaars en open Visual Basic Editor via de knop “Visual Basic”.
    visual-basic-button
  2. Voeg daarna een nieuwe module in vanuit het “Projectvenster” (klik met de rechtermuisknop ➢ Invoegen ➢ Module).
    insert-a-new-module
  3. Ga daarna naar het codevenster en maak een macro met de naam “Enter Done” (we maken een SUB-procedure), zoals ik hieronder heb gedaan.
    code-window
  4. Van daaruit moet je een code schrijven waar we het hierboven zojuist over hadden. Wacht even en denk als volgt: u moet de cel opgeven waarin u de waarde wilt invoegen, en vervolgens de waarde die u wilt invoeren.
  5. Voer de celreferentie in en hiervoor moet u het RANGE-object gebruiken en daar het celadres opgeven, zoals hieronder:
    cell-reference-range-object
  6. Voer daarna een punt in en op het moment dat u een punt toevoegt, krijgt u een lijst met eigenschappen die u kunt instellen en activiteiten die u met het bereik kunt doen.
    enter-a-dot
  7. Vanaf hier moet u de eigenschap “Waarde” selecteren en de tekst instellen die u in cel “A1” wilt invoegen. Wanneer u dit doet, ziet uw code er ongeveer zo uit als hieronder.
    select-value
  8. Voer ten slotte boven de coderegel de tekst in (“deze code voert de waarde “Gereed” in cel A5 in). Dit is een VBA-opmerking die u kunt invoegen om de coderegel die u hebt geschreven te definiëren.
    enter-the-text-above-line-code
 Sub Enter_Done() 'this code enters the value “Done” in the cell A5 Range("A1").Value = "Done" End Sub

Laten we dit begrijpen…

U kunt deze code in twee verschillende delen splitsen.

  • In het EERSTE deel hebben we het celadres opgegeven met behulp van het RANGE-object. En om naar een cel te verwijzen met behulp van een bereikobject, moet u het celadres tussen dubbele aanhalingstekens plaatsen (u kunt ook vierkante haakjes gebruiken).
  • In het TWEEDE deel hebben we de waarde opgegeven die in de cel moet worden ingevoerd. Wat u hebt gedaan, is dat u de waarde-eigenschap voor cel A5 hebt ingesteld met behulp van “.Value”. Daarna is het volgende dat u opgeeft de waarde ten opzichte van de eigenschap value . Telkens wanneer u een waarde definieert (als het tekst is), moet u die waarde tussen dubbele aanhalingstekens plaatsen.

De beste manier om VBA te leren

Hier heb ik enkele van de meest verbazingwekkende tutorials opgesomd (niet in een bepaalde volgorde) waarmee je VBA in een mum van tijd kunt leren.

  • Top 100 nuttige Excel [VBA] macrocodevoorbeelden
  • Hoe u een door de gebruiker gedefinieerde functie [UDF] in Excel kunt maken met behulp van VBA
  • VBA-interviewvragen

11. Functies

Voeg een reactie toe

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *