Visual Basic Editor - Hoe te openen en te gebruiken in Excel

De eerste stap om met VBA in Excel te werken is om vertrouwd te raken met de Visual Basic Editor (ook wel de VBA Editor of VB Editor genoemd).

In deze zelfstudie behandel ik alles wat er te weten valt over de VBA-editor en enkele handige opties die u moet weten bij het coderen in Excel VBA.

Wat is Visual Basic Editor in Excel?

Visual Basic Editor is een afzonderlijke toepassing die deel uitmaakt van Excel en wordt geopend wanneer u een Excel-werkmap opent. Standaard is het verborgen en om het te openen, moet je het activeren.

VB Editor is de plaats waar u de VB-code bewaart.

Er zijn meerdere manieren om de code in de VB Editor te krijgen:

  1. Wanneer u een macro opneemt, maakt deze automatisch een nieuwe module in de VB Editor en voegt de code in die module in.
  2. U kunt handmatig VB-code typen in de VB-editor.
  3. U kunt een code uit een andere werkmap of van internet kopiëren en in de VB-editor plakken.

De VB-editor openen

Er zijn verschillende manieren om de Visual Basic Editor in Excel te openen:

  1. Een sneltoets gebruiken (eenvoudigste en snelste)
  2. Het tabblad Ontwikkelaars gebruiken.
  3. De werkbladtabbladen gebruiken.

Laten we elk van deze snel doornemen.

Sneltoets om de Visual Basic Editor te openen

De eenvoudigste manier om de Visual Basic-editor te openen, is door de sneltoets te gebruiken - ALT + F11 (houd de ALT-toets ingedrukt en druk op de F11-toets).

Zodra u dit doet, wordt een apart venster geopend voor de Visual Basic-editor.

Deze snelkoppeling werkt als een schakelaar, dus wanneer u deze opnieuw gebruikt, gaat u terug naar de Excel-toepassing (zonder de VB-editor te sluiten).

De snelkoppeling voor de Mac-versie is Opt + F11 of Fn + Opt + F11

Het tabblad Ontwikkelaars gebruiken

De Visual Basic Editor openen vanaf het lint:

  1. Klik op het tabblad Ontwikkelaars (als u geen ontwikkelaarstabblad ziet, lees dan hoe u dit kunt krijgen).
  2. Klik in de groep Code op Visual Basic.

De werkbladtab gebruiken

Dit is een minder gebruikte methode om de Vb Editor te openen.

Ga naar een van de werkbladtabbladen, klik met de rechtermuisknop en selecteer 'Code weergeven'.

Met deze methode wordt niet alleen de VB-editor geopend, maar gaat u ook naar het codevenster voor dat werkbladobject.

Dit is handig als u code wilt schrijven die alleen voor een specifiek werkblad werkt. Dit is meestal het geval bij werkbladgebeurtenissen.

Anatomie van de Visual Basic Editor in Excel

Wanneer u de VB Editor voor de eerste keer opent, ziet het er misschien een beetje overweldigend uit.

Er zijn verschillende opties en secties die in eerste instantie geheel nieuw lijken.

Het heeft ook nog steeds een oude Excel 97-dagen-look. Hoewel Excel in de loop der jaren enorm is verbeterd in ontwerp en bruikbaarheid, heeft de VB-editor geen verandering gezien in de manier waarop het eruit ziet.

In deze sectie zal ik u door de verschillende onderdelen van de Visual Basic Editor-toepassing leiden.

Opmerking: toen ik jaren geleden VBA begon te gebruiken, was ik behoorlijk overweldigd door al deze nieuwe opties en vensters. Maar naarmate u gewend raakt aan het werken met VBA, zult u zich met de meeste hiervan op uw gemak voelen. En meestal hoeft u niet alle opties te gebruiken, slechts een handvol.

Hieronder ziet u een afbeelding van de verschillende onderdelen van de VB Editor. Deze worden vervolgens in detail beschreven in de onderstaande secties van deze zelfstudie.

Laten we nu snel elk van deze componenten doornemen en begrijpen wat het doet:

Menubalk

Hier heb je alle opties die je kunt gebruiken in de VB Editor. Het is vergelijkbaar met het Excel-lint waar u bij elk tabblad tabbladen en opties hebt.

U kunt de beschikbare opties verkennen door op elk van de menu-elementen te klikken.

U zult merken dat bij de meeste opties in VB Editor sneltoetsen worden vermeld. Als je eenmaal gewend bent aan een paar sneltoetsen, wordt het werken met de VB Editor heel eenvoudig.

Werkbalk

Standaard is er een werkbalk in de VB-editor met enkele handige opties die u waarschijnlijk het vaakst nodig zult hebben. Dit is net als de werkbalk Snelle toegang in Excel. Het geeft u snel toegang tot enkele van de handige opties.

Je kunt het een beetje aanpassen door er opties aan te verwijderen of toe te voegen (door op de kleine naar beneden wijzende pijl aan het einde van de werkbalk te klikken).

In de meeste gevallen is de standaardwerkbalk alles wat u nodig hebt wanneer u met de VB Editor werkt.

U kunt de werkbalk boven de menubalk verplaatsen door op de drie grijze stippen (aan het begin van de werkbalk) te klikken en deze boven de menubalk te slepen.

Opmerking: Er zijn vier werkbalken in de VB Editor - Standaard, Debug, Bewerken en Gebruikersformulier. Wat u in de bovenstaande afbeelding ziet (wat ook de standaard is) is de standaardwerkbalk. U kunt andere werkbalken openen door naar de optie Weergave te gaan en de cursor op de optie Werkbalken te plaatsen. U kunt desgewenst een of meer werkbalken aan de VB-editor toevoegen.

Projectverkenner

Projectverkenner is een venster aan de linkerkant dat alle objecten toont die momenteel in Excel zijn geopend.

Wanneer u met Excel werkt, is elke geopende werkmap of invoegtoepassing een project. En elk van deze projecten kan een verzameling objecten bevatten.

In de onderstaande afbeelding toont de Projectverkenner bijvoorbeeld de twee werkmappen die open zijn (Boek1 en Boek2) en de objecten in elke werkmap (werkbladen, ThisWorkbook en Module in Book1).

Er is een pluspictogram aan de linkerkant van objecten die u kunt gebruiken om de lijst met objecten samen te vouwen of uit te vouwen en de volledige lijst met objecten te bekijken.

De volgende objecten kunnen deel uitmaken van de Projectverkenner:

  1. Alle open werkmappen - binnen elke werkmap (die ook wel een project wordt genoemd), kunt u de volgende objecten hebben:
    • Werkbladobject voor elk werkblad in de werkmap
    • ThisWorkbook-object die de werkmap zelf vertegenwoordigt
    • Kaartblad object voor elk grafiekblad (deze zijn niet zo gebruikelijk als werkbladen)
    • Modules - Hier gaat de code die wordt gegenereerd met een macrorecorder naartoe. U kunt hier ook VBA-code schrijven of kopiëren.
  2. Alle geopende invoegtoepassingen

Beschouw de Projectverkenner als een plaats die alle objecten schetst die op dat moment in Excel zijn geopend.

De sneltoets om de Projectverkenner te openen is: Controle + R (houd de navigatietoets ingedrukt en druk vervolgens op R). Om het te sluiten, klikt u op het sluitpictogram in de rechterbovenhoek van het venster Projectverkenner.

Opmerking: voor elk object in Projectverkenner is er een codevenster waarin u de code kunt schrijven (of deze ergens kunt kopiëren en plakken). Het codevenster verschijnt wanneer u dubbelklikt op het object.

Eigenschappenvenster

Het eigenschappenvenster is waar u de eigenschappen van het geselecteerde object kunt zien. Als u het venster Eigenschappen nog niet hebt, kunt u het krijgen door de sneltoets F4 te gebruiken (of ga naar het tabblad Weergave en klik op het venster Eigenschappen).

Het eigenschappenvenster is een zwevend venster dat u kunt vastzetten in de VB-editor. In het onderstaande voorbeeld heb ik het net onder de Project Explorer gedokt.

Eigenschappenvenster stelt ons in staat om de eigenschappen van een geselecteerd object te wijzigen. Als ik bijvoorbeeld een werkblad verborgen (of erg verborgen) wil maken, kan ik dat doen door de zichtbare eigenschap van het geselecteerde werkbladobject te wijzigen.

Verwant: Een werkblad verbergen in Excel (dat niet gemakkelijk kan worden verborgen)

Codevenster

Er is een codevenster voor elk object dat in de Projectverkenner wordt vermeld. U kunt het codevenster voor een object openen door erop te dubbelklikken in het gebied Projectverkenner.

In het codevenster schrijft u uw code of kopieert u een code van ergens anders.

Wanneer u een macro opneemt, gaat de code ervoor in het codevenster van een module. Excel voegt automatisch een module in om de code erin te plaatsen bij het opnemen van een macro.

Verwant: Hoe een macro (VBA-code) in Excel uit te voeren.

Onmiddellijk venster

Het venster Direct wordt meestal gebruikt bij het debuggen van code. Een manier waarop ik het Immediate-venster gebruik, is door een Print.Debug-instructie in de code te gebruiken en vervolgens de code uit te voeren.

Het helpt me om de code te debuggen en te bepalen waar mijn code vastloopt. Als ik het resultaat van Print.Debug in het directe venster krijg, weet ik dat de code tot die regel werkte.

Als VBA-codering nieuw voor u is, kan het enige tijd duren voordat u het directe venster voor foutopsporing kunt gebruiken.

Standaard is het directe venster niet zichtbaar in de VB Editor. Je kunt het krijgen door de sneltoets Control + G te gebruiken (of je kunt naar het tabblad Weergave gaan en op 'Onmiddellijk venster' klikken).

Waar code toe te voegen in de VB Editor

Ik hoop dat je nu een basiskennis hebt van wat VB Editor is en welke onderdelen het bevat.

In dit gedeelte van deze zelfstudie laat ik u zien waar u een VBA-code kunt toevoegen in de Visual Basic Editor.

Er zijn twee plaatsen waar u de VBA-code in Excel kunt toevoegen:

  1. Het codevenster voor een object. Deze objecten kunnen een werkmap, werkblad, gebruikersformulier, enz. zijn.
  2. Het codevenster van een module.

Modulecodevenster versus objectcodevenster

Laat me eerst snel het verschil duidelijk maken tussen het toevoegen van een code in een module en het toevoegen van een code in een objectcodevenster.

Wanneer u een code aan een van de objecten toevoegt, is het afhankelijk van een actie van dat object die die code activeert. Als u bijvoorbeeld alle werkbladen in een werkmap zichtbaar wilt maken zodra u die werkmap opent, gaat de code in het ThisWorkbook-object (dat de werkmap vertegenwoordigt).

De trigger is in dit geval het openen van de werkmap.

Evenzo, als u een werkblad wilt beschermen zodra een ander werkblad is geactiveerd, gaat de code daarvoor in het werkbladcodevenster.

Deze triggers worden gebeurtenissen genoemd en u kunt een code koppelen die moet worden uitgevoerd wanneer een gebeurtenis plaatsvindt.

Verwant: leer meer over gebeurtenissen in VBA.

Integendeel, de code in de module moet ofwel handmatig worden uitgevoerd (of het kan ook vanuit andere subroutines worden aangeroepen).

Wanneer u een macro opneemt, maakt Excel automatisch een module en voegt de opgenomen macrocode daarin in. Als u deze code nu moet uitvoeren, moet u de macro handmatig uitvoeren.

VBA-code toevoegen in module

Terwijl het opnemen van een macro automatisch een module maakt en de code erin invoegt, zijn er enkele beperkingen bij het gebruik van een macrorecorder. Het kan bijvoorbeeld geen lussen of If Then Else-voorwaarden gebruiken.

In dergelijke gevallen is het beter om de code handmatig te kopiëren en te plakken of de code zelf te schrijven.

Een module kan worden gebruikt voor de volgende typen VBA-codes:

  1. Verklaringen: U kunt variabelen declareren in een module. Door variabelen te declareren kunt u specificeren welk type gegevens een variabele kan bevatten. U kunt een variabele alleen voor een subroutine declareren of voor alle subroutines in de module (of alle modules)
  2. Subroutines (procedures): Dit is de code met de stappen die VBA moet uitvoeren.
  3. Functieprocedures:: Dit is een code die een enkele waarde retourneert en u kunt deze gebruiken om aangepaste functies te maken (ook wel door de gebruiker gedefinieerde functies of UDF's genoemd in VBA)

Een module maakt standaard geen deel uit van de werkmap. U moet het eerst plaatsen voordat u het gebruikt.

Een module toevoegen in de VB Editor

Hieronder staan ​​de stappen om een ​​module toe te voegen:

  1. Klik met de rechtermuisknop op een willekeurig object van de werkmap (waarin u de module wilt hebben).
  2. Beweeg de cursor over de optie Invoegen.
  3. Klik op Module.

Dit zou onmiddellijk een map maken met de naam Module en een object met de naam Module 1 invoegen. Als u al een module hebt ingevoegd, zouden de bovenstaande stappen een andere module invoegen.

Nadat de module is ingevoegd, kunt u dubbelklikken op het module-object in de Projectverkenner en het codevenster ervoor openen.

Nu kunt u de code kopiëren en plakken of zelf schrijven.

De module verwijderen

Hieronder staan ​​de stappen om een ​​module in Excel VBA te verwijderen:

  1. Klik met de rechtermuisknop op de module die u wilt verwijderen.
  2. Klik op de optie Module verwijderen.
  3. Klik in het dialoogvenster dat wordt geopend op Nee.

Opmerking: u kunt een module exporteren voordat u deze verwijdert. Het wordt opgeslagen als een .bas-bestand en u kunt het in een ander project importeren. Om een ​​module te exporteren, klikt u met de rechtermuisknop op de module en klikt u op 'Bestand exporteren'.

Code toevoegen aan het objectcodevenster

Om het codevenster voor een object te openen, dubbelklikt u erop.

Wanneer het wordt geopend, kunt u de code handmatig invoeren of de code kopiëren en plakken uit andere modules of van internet.

Merk op dat u bij sommige objecten de gebeurtenis kunt kiezen waarvoor u de code wilt schrijven.

Als u bijvoorbeeld een code wilt schrijven om iets te laten gebeuren wanneer de selectie in het werkblad wordt gewijzigd, moet u eerst werkbladen selecteren in de vervolgkeuzelijst linksboven in het codevenster en vervolgens de wijzigingsgebeurtenis selecteren in de vervolgkeuzelijst - rechtsonder.

Opmerking: deze gebeurtenissen zijn specifiek voor het object. Wanneer u het codevenster voor een werkmap opent, ziet u de gebeurtenissen met betrekking tot het werkmapobject. Wanneer u het codevenster voor een werkblad opent, ziet u de gebeurtenissen met betrekking tot het werkbladobject.

De VB-editor aanpassen

Hoewel de standaardinstellingen van de Visual Basic Editor voor de meeste gebruikers goed genoeg zijn, kunt u de interface en enkele functionaliteiten verder aanpassen.

In dit gedeelte van de tutorial laat ik je alle opties zien die je hebt bij het aanpassen van de VB Editor.

Om de VB Editor-omgeving aan te passen, klikt u op Extra in de menubalk en vervolgens op Opties.

Dit zou het dialoogvenster Opties openen, waarin u alle aanpassingsopties in de VB-editor krijgt. Het dialoogvenster 'Opties' heeft vier tabbladen (zoals hieronder weergegeven) met verschillende aanpassingsopties voor de Visual Basic Editor.

Laten we snel elk van deze tabbladen en de belangrijke opties in elk doornemen.

Tabblad Editor

Hoewel de ingebouwde instellingen in de meeste gevallen prima werken, wil ik nog steeds de opties op dit tabblad doornemen.

Naarmate u vaardiger wordt in het werken met VBA in Excel, wilt u misschien de VB-editor aanpassen met behulp van enkele van deze opties.

Automatische syntaxiscontrole

Wanneer u met VBA in Excel werkt, wordt u, zodra u een syntaxisfout maakt, begroet door een pop-upvenster (met een beschrijving van de fout). Iets zoals hieronder weergegeven:

Als u deze optie uitschakelt, verschijnt dit pop-upvenster niet, zelfs niet als u een syntaxisfout maakt. Er zou echter een kleurverandering in de codetekst zijn om aan te geven dat er een fout is.

Als je een beginner bent, raad ik je aan deze optie ingeschakeld te houden. Naarmate je meer ervaring krijgt met coderen, kun je deze pop-upvensters irritant gaan vinden, en dan kun je deze optie uitschakelen.

Variabele declaratie vereisen

Dit is een optie die ik aanraad om in te schakelen.

Wanneer u met VBA werkt, gebruikt u variabelen om verschillende gegevenstypen en objecten op te slaan.

Wanneer u deze optie inschakelt, wordt automatisch de instructie 'Option Explicit' bovenaan het codevenster ingevoegd. Dit dwingt je om alle variabelen te declareren die je in je code gebruikt. Als u een variabele niet declareert en de code probeert uit te voeren, wordt er een fout weergegeven (zoals hieronder weergegeven).

In het bovenstaande geval heb ik de variabele Var gebruikt, maar ik heb deze niet gedeclareerd. Dus wanneer ik de code probeer uit te voeren, wordt er een fout weergegeven.

Deze optie is erg handig als je veel variabelen hebt. Het helpt me vaak om verkeerd gespelde namen van variabelen te vinden, omdat ze als niet-gedeclareerd worden beschouwd en er een fout wordt weergegeven.

Opmerking: wanneer u deze optie inschakelt, heeft dit geen invloed op de bestaande modules.

Lid van automatische lijst

Deze optie is erg handig omdat het u helpt een lijst met eigenschappen van methoden voor een object te krijgen.

Als ik bijvoorbeeld een werkblad (Blad1) wil verwijderen, moet ik de regel Blad1.Verwijderen gebruiken.

Terwijl ik de code typ, zal het me, zodra ik de punt typ, alle methoden en eigenschappen tonen die aan het werkbladobject zijn gekoppeld (zoals hieronder weergegeven).

De automatische lijstfunctie is geweldig omdat u hiermee:

  • Selecteer snel de eigenschap en methode uit de lijst en bespaar tijd
  • Toont u alle eigenschappen en methoden waarvan u misschien niet op de hoogte bent
  • Vermijd het maken van spelfouten

Deze optie is standaard ingeschakeld en ik raad aan om dit zo te houden.

Opties voor automatische snelle informatie

Wanneer u een functie typt in het Excel-werkblad, toont het u wat informatie over de functie, zoals de argumenten die nodig zijn.

Evenzo, wanneer u een functie in VBA typt, toont deze u wat informatie (zoals hieronder weergegeven). Maar om dat te laten gebeuren, moet u ervoor zorgen dat de optie Auto Quick Info is ingeschakeld (wat standaard het geval is).

Opties voor automatische gegevenstips

Wanneer u regel voor regel uw code doorloopt en uw cursor boven een variabelenaam plaatst, wordt de waarde van de variabele weergegeven.

Ik vind het best handig bij het debuggen van de code of het regel voor regel doorlopen van de code met lussen erin.

In het bovenstaande voorbeeld, zodra ik de cursor over de variabele (var) plaats, wordt de waarde weergegeven die deze bevat.

Deze optie is standaard ingeschakeld en ik raad u aan dit zo te houden.

Automatisch inspringen

Omdat VBA-codes lang en rommelig kunnen worden, verhoogt het gebruik van inspringen de leesbaarheid van de code.

Bij het schrijven van code kunt u inspringen met de tab-toets.

Deze optie zorgt ervoor dat wanneer u klaar bent met de ingesprongen regel en op enter drukt, de volgende regel niet helemaal vanaf het begin begint, maar dezelfde inspringing heeft als de vorige regel.

In het bovenstaande voorbeeld, nadat ik de regel Debug.Print heb geschreven en op enter heb gedrukt, begint deze er direct onder (met hetzelfde inspringingsniveau).

Ik vind deze optie handig en het uitschakelen ervan zou betekenen dat ik elke regel in een codeblok dat ik wil laten inspringen handmatig moet inspringen.

U kunt de inspringwaarde desgewenst wijzigen. Ik houd het op de standaardwaarde.

Slepen en neerzetten van tekstbewerking

Wanneer deze optie is ingeschakeld, kunt u een codeblok selecteren en het slepen en neerzetten.

Het bespaart tijd omdat u het niet eerst hoeft te knippen en vervolgens te plakken. U kunt het eenvoudig selecteren en slepen.

Deze optie is standaard ingeschakeld en ik raad u aan dit zo te houden.

Standaard op Volledige moduleweergave

Wanneer deze optie is ingeschakeld, kunt u alle procedures in een module in één enkele schuifbare lijst zien.

Als u deze optie uitschakelt, kunt u slechts één module tegelijk zien. U moet een selectie maken van de module die u wilt zien in de vervolgkeuzelijst rechtsboven in het codevenster.

Deze optie is standaard ingeschakeld en ik raad aan om dit zo te houden.

Een reden waarom je het misschien wilt uitschakelen wanneer je meerdere procedures hebt die enorm zijn en eroverheen scrollen, kost tijd, of wanneer je veel procedures hebt en je deze snel wilt vinden in plaats van tijd te verspillen met scrollen.

Procedurescheidingsteken:

Als deze optie is ingeschakeld, ziet u een lijn (een soort scheidingslijn) tussen twee procedures.

Ik vind dit handig omdat het visueel laat zien wanneer de ene procedure eindigt en de andere begint.

Het is standaard ingeschakeld en ik raad aan om het zo te houden.

Tabblad Editor-indeling

Met de opties op het tabblad Editor-indeling kunt u de manier aanpassen waarop uw code eruitziet in het codevenster.

Persoonlijk bewaar ik alle standaardopties omdat ik er geen probleem mee heb. Als je wilt, kun je dit aanpassen op basis van je voorkeur.

Om een ​​wijziging aan te brengen, moet u eerst een optie selecteren in het vak Codekleuren. Nadat een optie is geselecteerd, kunt u de voorgrond-, achtergrond- en indicatorkleur ervoor wijzigen.

Op dit tabblad kunnen ook het lettertype en de lettergrootte worden ingesteld. Het wordt aanbevolen om een ​​lettertype met vaste breedte te gebruiken, zoals Courier New, omdat dit de code leesbaarder maakt.

Merk op dat het lettertype en de grootte-instelling hetzelfde blijven voor alle codetypes (d.w.z. alle codetypes getoond in het codekleurvak).

Hieronder staat een afbeelding waarin ik Breakpoint heb geselecteerd en ik kan de opmaak ervan wijzigen.

Opmerking: de optie Marge-indicatorbalk, indien ingeschakeld, toont een kleine margebalk links van de code. Het is handig omdat het nuttige indicatoren toont bij het uitvoeren van de code. Als u in het bovenstaande voorbeeld een breekpunt instelt, wordt er automatisch een rode stip links van de lijn in de margebalk weergegeven. Als alternatief kunt u, om een ​​breekpunt in te stellen, eenvoudig op de margebalk klikken aan de linkerkant van de coderegel die u als breekpunt wilt gebruiken.

Standaard is de marge-indicatorbalk ingeschakeld en ik raad aan om dit zo te houden.

Een van mijn VBA-cursisten vond deze aanpassingsopties nuttig en ze was kleurenblind. Met behulp van de opties hier kon ze de kleur en formaten instellen die het haar gemakkelijk maakten om met VBA te werken.

Algemeen tabblad

Het tabblad Algemeen heeft veel opties, maar u hoeft niets te wijzigen.

Ik raad je aan om alle opties te behouden zoals ze zijn.

Een belangrijke optie om te weten op dit tabblad is Foutafhandeling.

Standaard is 'Break on Unhandled Errors' geselecteerd en ik raad aan om dit zo te houden.

Deze optie betekent dat als uw code een fout tegenkomt en u die fout nog niet in uw code hebt verwerkt, deze zal breken en stoppen. Maar als u de fout hebt verholpen (zoals door de opties Bij fout hervatten volgende of bij fout Goto te gebruiken), zal deze niet kapot gaan (omdat de fouten niet onbehandeld blijven).

Docking-tabblad

Op dit tabblad kunt u aangeven welke vensters u wilt koppelen.

Docking betekent dat u de positie van een venster (zoals de projectverkenner of het venster Eigenschappen) kunt fixeren, zodat het niet rondzweeft en u alle verschillende vensters tegelijkertijd kunt bekijken.

Als u niet dockt, kunt u het ene venster tegelijk op het volledige scherm bekijken en moet u overschakelen naar het andere.

Ik raad aan om de standaardinstellingen te behouden.

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

wave wave wave wave wave