VBA - Visual Basic Editor (VBE) openen en gebruiken in Excel

Deze tutorial laat je zien hoe je de Visual Basic Editor in VBA opent en programmeert.

De Visual Basic-editor openen

Er zijn een paar manieren om toegang te krijgen tot de Visual Basic Editor (VBE) in Excel.

druk op Alt + F11 op je toetsenbord.

OF

Klik Beeld > Macro's > Macro's bekijken. Vanaf hier kunt u Bewerking een bestaande macro of Creëren een nieuwe. Beide opties openen de VB-editor.

OF

Ontwikkelaar > Visual Basic

Opmerking: als u het ontwikkelaarslint niet ziet, moet u dit inschakelen.

Het ontwikkelaarslint inschakelen

Klik op de Bestand tabblad in het lint en ga naar beneden naar Opties. In de Lint aanpassen opties, vink de aan Ontwikkelaar selectievakje. Dit is standaard uitgeschakeld, dus u moet het inschakelen om het tabblad op het lint te zien.

Klik Oke.

Het tabblad Ontwikkelaar verschijnt op het hoofdlint. Klik op Visual Basic aan het begin van het lint om de Visual Basic Editor te openen.

Het VBE-scherm begrijpen

Het VBE-scherm wordt weergegeven in de onderstaande afbeelding.

De projectverkenner

Met de Projectverkenner kunt u zien hoe het Project waarin u werkt is georganiseerd. U kunt zien hoeveel modules en formulieren er in het project zijn opgeslagen en u kunt tussen deze modules en formulieren navigeren. Een module is waar de code in uw werkmap wordt opgeslagen, wanneer u een macro opneemt, wordt deze opgeslagen in een standaardmodule - die standaard wordt genoemd 'Module 1'.

Elk van de werkbladen in uw Excel-bestand heeft ook een module erachter, net als de werkmap zelf. Wanneer u via het hoofdscherm van Excel een nieuw werkblad in de werkmap invoegt, ziet u in de Projectverkenner een extra werkbladmodule verschijnen.

Dubbelklik op een module om naar de code voor die module te gaan.

U kunt ook op het menu Venster op de werkbalk klikken en daar de module selecteren om naar de code voor die module te gaan.

Type module

De modules zijn onderverdeeld in 5 verschillende typen.

  1. Standaardmodules - het grootste deel van uw code gaat naar dit type module. Wanneer u een macro opneemt, wordt deze in een standaardmodule geplaatst. Wanneer u een algemene procedure schrijft die in uw hele werkmap moet worden gebruikt, gaat deze normaal gesproken ook in een standaardmodule.
  2. Werkmapmodules - deze module bevat de code die uniek is voor die individuele werkmap. De meeste code in dit soort modules staat bekend als: EVENEMENTEN. Een gebeurtenis kan bijvoorbeeld optreden wanneer een werkmap wordt geopend of gesloten. De module kan ook code bevatten die door uzelf is geschreven en door de evenementen wordt gebruikt.
  3. Bladmodules - deze module bevat de code die uniek is voor dat individuele blad. Ze kunnen optreden als er bijvoorbeeld op een blad wordt geklikt (de Klik op Evenement), of wanneer u gegevens in een cel wijzigt. Deze module kan ook code bevatten die door uzelf is geschreven en door de Events wordt aangeroepen.
  4. Formuliermodules - dit is de module achter een aangepast formulier dat u kunt maken. U kunt bijvoorbeeld een formulier maken om details voor een factuur vast te leggen, met een OK-knop, de code achter de knop (de Click Event) bevat de code die wordt uitgevoerd wanneer op de knop wordt geklikt.
  5. Klasmodules - deze module wordt gebruikt om tijdens runtime objecten te maken. De klassenmodule wordt gebruikt door geavanceerde VBA-programmeurs en zal in een later stadium worden behandeld.

Een module of formulier invoegen in uw code

Om een ​​nieuwe module in uw code in te voegen, klikt u op de Invoegen optie op de menubalk en klik op module.

Of klik op de Module invoegen knop die u op het standaardlint vindt.

Om een ​​nieuw gebruikersformulier in uw code in te voegen, selecteert u de Gebruikersformulier optie.

Er verschijnt een nieuw gebruikersformulier in de Projectverkenner en wordt weergegeven in het codevenster aan de rechterkant.

U kunt ook een Klassenmodule

Een klassenmodule wordt gebruikt om objecten in uw VBA-project in te voegen.

Een module of formulier verwijderen uit de projectverkenner

Klik met de rechtermuisknop op de module of het formulier dat u wilt verwijderen om het snelmenu met de rechtermuisknop weer te geven.

Klik Verwijderen (in dit geval Gebruikersformulier1… )

OF

Klik op de Bestand menu en klik vervolgens op Verwijder (UserForm1).

Er verschijnt een waarschuwingsvenster waarin u wordt gevraagd of u het formulier of de module wilt exporteren voordat u deze verwijdert. Door het formulier of de module te exporteren, kunt u het opslaan als een afzonderlijk bestand voor gebruik in een ander Excel-project op een ander moment.

Vaker wel dan niet wanneer u een module of formulier verwijdert, is dit omdat u deze niet nodig hebt, dus klik op Nee.

Het eigenschappenvenster

U ziet het eigenschappenvenster onder de Projectverkenner. Mogelijk moet u dit inschakelen.

druk op F4 of klik op Weergave, Eigenschappenvenster.

In het eigenschappenvenster kunt u de eigenschappen zien voor de specifieke module of het formulier dat is geselecteerd in de Projectverkenner. Wanneer u in modules werkt, kunt u het eigenschappenvenster gebruiken om de naam van de module te wijzigen. Dit is de enige eigenschap die beschikbaar is voor een module. Wanneer u echter met formulieren werkt, zijn er veel meer eigenschappen beschikbaar en wordt het venster Eigenschappen dan uitgebreid gebruikt om het gedrag van formulieren en de besturingselementen in het formulier te regelen.

Wanneer u een macro opneemt, wordt deze automatisch in een standaardmodule geplaatst. De module krijgt de naam ‘Module 1' en alle code die in die module zit, is beschikbaar voor gebruik in uw hele project. U moet uw module hernoemen naar iets dat belangrijk is, waardoor uw code gemakkelijk te vinden zou zijn als u meerdere modules aan het project zou toevoegen.

U kunt uw formulieren ook hernoemen.

Als u uw blad in Excel een andere naam heeft gegeven, wordt de naam van het blad weergegeven als de naam van het blad tussen haakjes na Blad1.

Als u de naam van de module achter het blad wilt wijzigen, kunt u deze op dezelfde manier wijzigen als de naam van de module en het gebruikersformulier - door de eigenschap Naam in het venster Eigenschappen te wijzigen.

Moe van het zoeken naar voorbeelden van VBA-codes? Probeer AutoMacro!

Het codevenster

Het codevenster toont u de subprocedures en functies die in uw modules zijn opgenomen - het toont u de eigenlijke code. Wanneer u een macro opneemt, wordt er een subprocedure voor u gemaakt. Als u een sneltoets aan de macro toevoegt, wordt deze weergegeven als een opmerking in de macro om u te laten weten wat de sneltoets is die u aan de macro hebt toegewezen.

Bovenaan het codevenster staan ​​twee keuzelijsten. Hiermee kunt u zien aan welk object (indien aanwezig) binnen de module u mogelijk werkt en aan welke procedure u mogelijk werkt.

In het bovenstaande voorbeeld werken we aan geen enkel object - dit is dus ingesteld op algemeen, maar we werken binnen de Gridlines-procedure.

Als we meer dan één procedure in deze module hadden, zouden we de combobox hierboven kunnen gebruiken om naar de andere procedures te navigeren.

De code begrijpen

Er zijn 2 soorten procedures - Subprocedures en Functieprocedures.

Subprocedures

De macrorecorder kan alleen Subprocedures opnemen. Een Subprocedure doet dingen. Ze voeren acties uit zoals het opmaken van een tabel of het maken van een draaitabel, of in het voorbeeld van de rasterlijn, het wijzigen van de weergave-instellingen van uw actieve venster. De meeste geschreven procedures zijn subprocedures. Alle macro's zijn subprocedures.

Een subprocedure begint met a Sub verklaring en eindigt met een Einde sub uitspraak. De procedurenaam wordt altijd gevolgd door haakjes.

123 Sub HideGridLines()ActiveWindow.DisplayGridlines = FalseEinde sub

Functieprocedures:

Een functieprocedure retourneert een waarde. Deze waarde kan een enkele waarde, een array, een celbereik of een object zijn. Functies voeren meestal een soort berekening uit. Functies in Excel kunnen worden gebruikt met de Functiewizard of ze kunnen worden aangeroepen vanuit Subprocedures.

123 Functie Kilo (pond als dubbel)Kilo = (pond/2,2)Functie beëindigen

Deze functie kan worden gebruikt in het dialoogvenster Functie invoegen in Excel om ponden naar kilogrammen te converteren.

Een nieuwe procedure maken

Voordat u uw nieuwe procedure aanmaakt, moet u ervoor zorgen dat u zich in de module bevindt waarin u de procedure wilt opslaan. U kunt een nieuwe procedure maken door te klikken op het menu Invoegen, Procedure;

of u kunt op het pictogram op de werkbalk klikken

Het volgende dialoogvenster verschijnt:

  1. Typ de naam van uw nieuwe procedure in het naamvak - dit moet beginnen met een letter van het alfabet en mag letters en cijfers bevatten en maximaal 64 tekens lang zijn.
  2. Je kunt een Subprocedure, een Functie procedure: of een Eigendom procedure. (Eigenschappen worden gebruikt in Class-modules en stellen eigenschappen in voor ActiveX-besturingselementen die u mogelijk hebt gemaakt).
  3. U kunt de omvang van de procedure ofwel: Openbaar of Privaat. Als de procedure openbaar is (standaard), kan deze door alle modules in het project worden gebruikt, terwijl als de procedure privé is, deze alleen door deze module kan worden gebruikt.
  4. U kunt lokale variabelen in deze procedure declareren als Statica (dit heeft te maken met de Scope van de variabele en maakt een lokale variabele op het niveau van de procedure openbaar voor de hele module). We zullen deze optie niet gebruiken.

Als u alle relevante gegevens heeft ingevuld, klikt u op Oke.

Vervolgens typt u uw code tussen de instructies Sub en End Sub.

ALTERNATIEF - u kunt de Sub- en End Sub-statements in uw module precies zo typen als hierboven weergegeven. U hoeft het woord Public niet voor het woord sub te plaatsen - als dit woord wordt weggelaten, wordt automatisch aangenomen dat alle procedures in de module Openbaar zijn.

Dan typ je Sub en dan de naam van uw procedure gevolgd door haakjes.

d.w.z:

1 Subtest()

De Einde sub verklaring verschijnt automatisch.

VBA-programmering | Code Generator werkt voor u!

Code schrijven die gemakkelijk te begrijpen en te navigeren is

Opmerkingen toevoegen

Maak er een gewoonte van om opmerkingen in uw code te plaatsen om u in een later stadium te herinneren aan de functionaliteit van de code.

U kunt een opmerking in uw code invoegen maar een apostrof typen op het toetsenbord of u kunt de werkbalk Bewerken inschakelen en de opmerkingsknop gebruiken die op die werkbalk verschijnt.

Klik met de rechtermuisknop op de werkbalken.

Selecteer Bewerking.

Klik op de commentaarknop om een ​​opmerking in uw code in te voegen.

OPMERKING: Je gebruikt de commentaarblokknop meestal alleen als je een paar regels code hebt die je wilt weglaten (en niet wilt verwijderen). Het is gemakkelijker voor een enkele opmerking om een ​​apostrof te gebruiken.

Inspringen

Een goede gewoonte om erin te komen, is om uw code te laten inspringen, zodat u de code gemakkelijk kunt lezen en de verschillende delen van de code kunt zien.

Er kunnen veel niveaus van inspringen zijn, afhankelijk van de logica van uw code.

Hoofdletters versus kleine letters

VBA past alle code aan naar de juiste hoofdletters, dus als u ALLES IN HOOFDLETTERS typt of allemaal in kleine letters, wordt uw code opnieuw aangepast zodat deze in de juiste letters staat!

VBA-programmering | Code Generator werkt voor u!

Automatisch aanvullen

Wanneer u uw code aanpast, zult u merken dat VBA u probeert te helpen door de code voor te stellen die u kunt typen. Dit staat bekend als Automatisch aanvullen.

Foutopsporing en foutopsporing

Er zijn 4 soorten fouten die kunnen optreden wanneer u VBA-code schrijft: syntaxisfouten, compilatiefouten, runtime-fouten en logische fouten.

Syntaxisfouten

Deze treden op wanneer u de code verkeerd schrijft. Dit wordt grotendeels voorkomen door VBA door de optie Syntax check aan te zetten. Dit is normaal gesproken standaard ingeschakeld, maar als uw apparaat is uitgeschakeld, schakelt u het in door naar . te gaan Gereedschap, Opties en klik Automatische syntaxiscontrole.

Als u de code verkeerd typt (bijvoorbeeld iets uitsluiten dat in de code zou moeten staan), verschijnt er een berichtvenster terwijl u de code schrijft, zodat u de code kunt wijzigen.

Compilatiefouten

Deze treden op wanneer er iets in de code ontbreekt waardoor de code niet kan worden uitgevoerd. De fout treedt niet op wanneer u de code schrijft, maar treedt op wanneer u de code probeert uit te voeren.

VBA-programmering | Code Generator werkt voor u!

Runtime-fouten

Deze treden op wanneer u de code uitvoert en de syntaxis en compilatie correct zijn, maar er gebeurt iets anders om te voorkomen dat de code correct wordt uitgevoerd.

In dit geval bestaat Blad4 niet. Dit foutbericht is nuttiger dan de compileerfoutberichten, omdat het u de mogelijkheid biedt om de code te debuggen en te zien waarom het niet werkt.

Klik Debuggen. De code stopt bij de fout en markeert de fout in geel, zodat u uw fout kunt corrigeren.

Wijzig Blad4 in Blad2 (aangezien Blad 2 bestaat en Blad 4 niet).

druk op F5 of klik op de Doorgaan met knop op de werkbalk.

Logische fouten

Deze zijn het moeilijkst te vinden. In hun geval is de code correct geschreven, maar de eigenlijke logica van de code is gebrekkig, dus het kan zijn dat u niet het gewenste resultaat van de code krijgt. Voor logische fouten is het opvangen van fouten essentieel.

Er zijn 2 soorten foutvallen:

Bij fout Ga naar

De volgende code is om het dialoogvenster Bestand openen te openen - het geeft ons een foutmelding als de gebruiker klikt op Annuleren.

Wanneer u de code uitvoert, verschijnt het dialoogvenster Bestand openen.

Wanneer u vervolgens op annuleren klikt, zal de fout optreden.

De volgende Error-trap zal de code voortzetten naar de Exit-functie van de code en het bericht retourneren.

Dit maakt gebruik van On Error GoTo om de functie af te sluiten.

Wanneer u de code uitvoert en op Annuleren klikt, verschijnt het berichtvenster.

Bij fout Hervatten volgende

Als je de Bij fout Hervatten volgende Verklaring in uw code, de regel die de fout bevat, wordt genegeerd en de code wordt voortgezet.

Als de gebruiker bijvoorbeeld in de onderstaande code op Annuleren klikt, geeft de code u geen runtime-fout, maar wordt deze beëindigd zonder dat de code verder iets doet.

Er zijn momenten waarop dit erg handig is, maar het kan in sommige omstandigheden ook erg gevaarlijk zijn, omdat het geen bericht teruggeeft waarom je een foutmelding hebt gekregen.

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave