Visual Basic Editor - Sådan åbnes og bruges det i Excel

Det første trin til at arbejde med VBA i Excel er at gøre dig bekendt med Visual Basic Editor (også kaldet VBA Editor eller VB Editor).

I denne vejledning dækker jeg alt, hvad der er at vide om VBA Editor og nogle nyttige muligheder, som du bør vide, når du koder i Excel VBA.

Hvad er Visual Basic Editor i Excel?

Visual Basic Editor er et separat program, der er en del af Excel og åbnes, når du åbner en Excel -projektmappe. Som standard er det skjult, og for at få adgang til det skal du aktivere det.

VB Editor er stedet, hvor du gemmer VB -koden.

Der er flere måder, du kan hente koden i VB Editor:

  1. Når du optager en makro, opretter det automatisk et nyt modul i VB Editor og indsætter koden i det pågældende modul.
  2. Du kan manuelt skrive VB -kode i VB -editoren.
  3. Du kan kopiere en kode fra en anden projektmappe eller fra internettet og indsætte den i VB Editor.

Åbning af VB Editor

Der er forskellige måder at åbne Visual Basic Editor i Excel:

  1. Brug af en tastaturgenvej (nemmest og hurtigste)
  2. Brug fanen Udvikler.
  3. Brug af fanerne i regnearket.

Lad os gå hurtigt igennem hver af disse.

Tastaturgenvej for at åbne Visual Basic Editor

Den nemmeste måde at åbne Visual Basic -editoren på er at bruge tastaturgenvejen - ALT + F11 (hold ALT -tasten nede, og tryk på F11 -tasten).

Så snart du gør dette, åbnes et separat vindue til Visual Basic -editoren.

Denne genvej fungerer som en skifte, så når du bruger den igen, tager den dig tilbage til Excel -applikationen (uden at lukke VB Editor).

Genvejen til Mac -versionen er Vælg + F11 eller Fn + Opt + F11

Brug fanen Udvikler

Sådan åbner du Visual Basic Editor fra båndet:

  1. Klik på fanen Udvikler (hvis du ikke kan se en udviklerfane, kan du læse denne om hvordan du får den).
  2. Klik på Visual Basic i gruppen Kode.

Brug af fanen Regneark

Dette er en mindre brugt metode til at åbne Vb Editor.

Gå til en af ​​regnearkfanerne, højreklik, og vælg 'Vis kode'.

Denne metode åbner ikke bare VB Editor, den tager dig også til kodevinduet for det regnearkobjekt.

Dette er nyttigt, når du vil skrive kode, der kun fungerer til et bestemt regneark. Dette er normalt tilfældet med regnearkhændelser.

Anatomi af Visual Basic Editor i Excel

Når du åbner VB Editor for første gang, kan det se lidt overvældende ud.

Der er forskellige muligheder og sektioner, der kan virke helt nye i starten.

Det har også stadig et gammelt Excel 97 -dages udseende. Selvom Excel er forbedret enormt i design og brugervenlighed gennem årene, har VB Editor ikke set nogen ændring i den måde, det ser ud på.

I dette afsnit vil jeg tage dig igennem de forskellige dele af Visual Basic Editor -programmet.

Bemærk: Da jeg begyndte at bruge VBA for mange år siden, var jeg ret overvældet over alle disse nye muligheder og vinduer. Men som du vænner dig til at arbejde med VBA, ville du blive fortrolig med de fleste af disse. Og for det meste skal du ikke bruge alle mulighederne, kun en hånd fuld.

Nedenfor er et billede af de forskellige komponenter i VB Editor. Disse er derefter beskrevet detaljeret i nedenstående afsnit af denne vejledning.

Lad os nu hurtigt gå igennem hver af disse komponenter og forstå, hvad det gør:

Menu linje

Det er her, du har alle de muligheder, du kan bruge i VB Editor. Det ligner Excel -båndet, hvor du har faner og muligheder med hver fane.

Du kan udforske de tilgængelige muligheder ved at klikke på hvert af menuelementerne.

Du vil bemærke, at de fleste af mulighederne i VB Editor har tastaturgenveje nævnt ved siden af. Når du har vænnet dig til et par tastaturgenveje, bliver det virkelig let at arbejde med VB Editor.

Værktøjslinje

Som standard er der en værktøjslinje i VB Editor, som har nogle nyttige muligheder, som du sandsynligvis får brug for oftest. Dette er ligesom værktøjslinjen Hurtig adgang i Excel. Det giver dig hurtig adgang til nogle af de nyttige muligheder.

Du kan tilpasse det lidt ved at fjerne eller tilføje muligheder til det (ved at klikke på den lille pil nedad i slutningen af ​​værktøjslinjen).

I de fleste tilfælde er standardværktøjslinjen alt, hvad du har brug for, når du arbejder med VB Editor.

Du kan flytte værktøjslinjen over menulinjen ved at klikke på de tre grå prikker (i begyndelsen af ​​værktøjslinjen) og trække den over menulinjen.

Bemærk: Der er fire værktøjslinjer i VB Editor - Standard, Debug, Edit og User form. Det du ser på billedet ovenfor (som også er standard) er standardværktøjslinjen. Du kan få adgang til andre værktøjslinjer ved at gå til indstillingen Vis og holde markøren på værktøjslinjen. Du kan tilføje en eller flere værktøjslinjer til VB -editoren, hvis du vil.

Projekt Explorer

Project Explorer er et vindue til venstre, der viser alle de objekter, der aktuelt er åbne i Excel.

Når du arbejder med Excel, er hver projektmappe eller tilføjelsesprogram, der er åben, et projekt. Og hvert af disse projekter kan have en samling objekter i sig.

For eksempel viser billedet i nedenstående billede de to projektmapper, der er åbne (Bog1 og Bog2) og objekterne i hver projektmappe (regneark, ThisWorkbook og modul i bog1).

Der er et plusikon til venstre for objekter, som du kan bruge til at skjule listen over objekter eller udvide og se den komplette liste over objekter.

Følgende objekter kan være en del af Project Explorer:

  1. Alle åbne projektmapper - inden for hver projektmappe (som også kaldes et projekt) kan du have følgende objekter:
    • Objekt med regneark for hvert regneark i projektmappen
    • ThisWorkbook -objekt som repræsenterer selve projektmappen
    • Diagram objekt for hvert diagramark (disse er ikke så almindelige som regneark)
    • Moduler - Det er her koden, der genereres med en makrooptager, går. Du kan også skrive eller kopiere og indsætte VBA-kode her.
  2. Alle åbne tilføjelsesprogrammer

Betragt Project Explorer som et sted, der skitserer alle de objekter, der er åbne i Excel på det givne tidspunkt.

Tastaturgenvejen til at åbne Project Explorer er Control + R (hold styretasten nede, og tryk derefter på R). For at lukke det skal du blot klikke på ikonet Luk øverst til højre i vinduet Project Explorer.

Bemærk: For hvert objekt i Project Explorer er der et kodevindue, hvor du kan skrive koden (eller kopiere og indsætte den et eller andet sted). Kodevinduet vises, når du dobbeltklikker på objektet.

Egenskaber vindue

Egenskaber vindue er, hvor du får at se egenskaberne for det valgte objekt. Hvis du ikke allerede har vinduet Egenskaber, kan du få det ved hjælp af tastaturgenvejen F4 (eller gå til fanen Vis og klik på Egenskaber -vinduet).

Egenskaber vindue er et flydende vindue, som du kan forankre i VB Editor. I eksemplet herunder har jeg lagt det til lige under Project Explorer.

Egenskaber vindue giver os mulighed for at ændre egenskaberne for et valgt objekt. For eksempel, hvis jeg vil gøre et regneark skjult (eller meget skjult), kan jeg gøre det ved at ændre den synlige egenskab for det valgte regnearkobjekt.

Relaterede: Skjuler et regneark i Excel (der ikke let kan fjernes skjult)

Kodevindue

Der er et kodevindue for hvert objekt, der er angivet i Project Explorer. Du kan åbne kodevinduet for et objekt ved at dobbeltklikke på det i området Project Explorer.

Kodevindue er, hvor du skriver din kode eller kopierer en kode fra et andet sted.

Når du optager en makro, går koden til den ind i kodevinduet på et modul. Excel indsætter automatisk et modul for at placere koden i det, når der optages en makro.

Relaterede: Sådan køres en makro (VBA -kode) i Excel.

Umiddelbart vindue

Vinduet Umiddelbart bruges mest til fejlfinding af kode. En måde jeg kan bruge vinduet Umiddelbart er ved at bruge en Print.Debug -sætning i koden og derefter køre koden.

Det hjælper mig med at fejlsøge koden og bestemme, hvor min kode sidder fast. Hvis jeg får resultatet af Print.Debug i det umiddelbare vindue, ved jeg, at koden fungerede i det mindste indtil den linje.

Hvis du ikke er ny inden for VBA -kodning, kan det tage dig noget tid at kunne bruge det umiddelbare vindue til fejlfinding.

Som standard er det umiddelbare vindue ikke synligt i VB Editor. Du kan få det ved at bruge tastaturgenvejen Control + G (eller kan gå til fanen Vis og klikke på 'Umiddelbart vindue').

Hvor tilføjes kode i VB Editor

Jeg håber, at du nu har en grundlæggende forståelse af, hvad VB Editor er, og hvad alle dele har.

I dette afsnit af denne vejledning viser jeg dig, hvor du kan tilføje en VBA -kode i Visual Basic Editor.

Der er to steder, hvor du kan tilføje VBA -koden i Excel:

  1. Kodevinduet for et objekt. Disse objekter kan være en projektmappe, regneark, brugerformular osv.
  2. Kodevinduet for et modul.

Modulkodevindue mod vindue med objektkode

Lad mig først hurtigt fjerne forskellen mellem at tilføje en kode i et modul vs tilføje en kode i et objektkodevindue.

Når du tilføjer en kode til et af objekterne, er det afhængigt af en handling af dette objekt, der vil udløse koden. For eksempel, hvis du vil vise alle regnearkene i en projektmappe, så snart du åbner denne projektmappe, vil koden gå i ThisWorkbook -objektet (som repræsenterer projektmappen).

Udløseren åbner i dette tilfælde projektmappen.

På samme måde, hvis du vil beskytte et regneark, så snart et andet regneark er aktiveret, går koden til det i regnearkets kodevindue.

Disse udløsere kaldes hændelser, og du kan knytte en kode, der skal udføres, når der opstår en begivenhed.

Relaterede: Lær mere om begivenheder i VBA.

Tværtimod skal koden i modulet udføres enten manuelt (eller det kan også kaldes fra andre underprogrammer).

Når du optager en makro, opretter Excel automatisk et modul og indsætter den registrerede makrokode i den. Hvis du nu skal køre denne kode, skal du manuelt udføre makroen.

Tilføjelse af VBA -kode i modul

Mens optagelse af en makro automatisk opretter et modul og indsætter koden i den, er der nogle begrænsninger ved brug af en makrooptager. For eksempel kan den ikke bruge loops eller If Then Else -forhold.

I sådanne tilfælde er det bedre at enten kopiere og indsætte koden manuelt eller skrive koden selv.

Et modul kan bruges til at indeholde følgende typer VBA -koder:

  1. Erklæringer: Du kan erklære variabler i et modul. Ved at deklarere variabler kan du angive, hvilken type data en variabel kan indeholde. Du kan erklære en variabel kun for en underrutine eller for alle underrutiner i modulet (eller alle moduler)
  2. Underrutiner (procedurer): Dette er koden, der har de trin, du vil have VBA til at udføre.
  3. Funktionsprocedurer: Dette er en kode, der returnerer en enkelt værdi, og du kan bruge den til at oprette brugerdefinerede funktioner (også kaldet brugerdefinerede funktioner eller UDF'er i VBA)

Som standard er et modul ikke en del af projektmappen. Du skal først indsætte den, før du bruger den.

Tilføjelse af et modul i VB Editor

Nedenfor er trinene for at tilføje et modul:

  1. Højreklik på et hvilket som helst objekt i projektmappen (hvor du ønsker modulet).
  2. Hold markøren på indstillingen Indsæt.
  3. Klik på Modul.

Dette ville øjeblikkeligt oprette en mappe kaldet modul og indsætte et objekt kaldet modul 1. Hvis du allerede har indsat et modul, vil ovenstående trin indsætte et andet modul.

Når modulet er indsat, kan du dobbeltklikke på modulobjektet i Project Explorer, og det åbner kodevinduet for det.

Nu kan du kopiere og indsætte koden eller skrive den selv.

Fjernelse af modulet

Nedenfor er trinene til at fjerne et modul i Excel VBA:

  1. Højreklik på det modul, du vil fjerne.
  2. Klik på Fjern modul.
  3. I dialogboksen, der åbnes, skal du klikke på Nej.

Bemærk: Du kan eksportere et modul, før du fjerner det. Den gemmes som en .bas -fil, og du kan importere den i et andet projekt. For at eksportere et modul skal du højreklikke på modulet og klikke på 'Eksporter fil'.

Tilføjelse af kode til vinduet Objektkode

For at åbne kodevinduet for et objekt skal du blot dobbeltklikke på det.

Når den åbnes, kan du indtaste koden manuelt eller kopiere og indsætte koden fra andre moduler eller fra internettet.

Bemærk, at nogle af objekterne giver dig mulighed for at vælge den begivenhed, du vil skrive koden til.

For eksempel, hvis du vil skrive en kode for at der skal ske noget, når markeringen ændres i regnearket, skal du først vælge regneark fra rullemenuen øverst til venstre i kodevinduet og derefter vælge ændringshændelsen fra drop -ned til højre.

Bemærk: Disse hændelser er specifikke for objektet. Når du åbner kodevinduet for en projektmappe, vil du se de begivenheder, der er relateret til projektmappeobjektet. Når du åbner kodevinduet for et regneark, vil du se begivenheder relateret til regnearkobjektet.

Tilpasning af VB Editor

Selvom standardindstillingerne i Visual Basic Editor er gode nok for de fleste brugere, giver det dig mulighed for yderligere at tilpasse grænsefladen og et par funktioner.

I dette afsnit af selvstudiet viser jeg dig alle de muligheder, du har, når du tilpasser VB Editor.

For at tilpasse VB Editor -miljøet skal du klikke på Værktøjer i menulinjen og derefter klikke på Indstillinger.

Dette åbner dialogboksen Indstillinger, som giver dig alle tilpasningsmuligheder i VB Editor. Dialogboksen 'Indstillinger' har fire faner (som vist nedenfor), der har forskellige tilpasningsmuligheder til Visual Basic Editor.

Lad os hurtigt gå igennem hver af disse faner og de vigtige muligheder i hver.

Fanen Editor

Mens de indbyggede indstillinger fungerer fint i de fleste tilfælde, lad mig stadig gå igennem mulighederne i denne fane.

Efterhånden som du bliver dygtigere til at arbejde med VBA i Excel, kan du tilpasse VB Editor ved hjælp af nogle af disse muligheder.

Autosyntaksekontrol

Når du arbejder med VBA i Excel, så snart du laver en syntaksfejl, bliver du mødt af en pop-up dialogboks (med en beskrivelse af fejlen). Noget som vist herunder:

Hvis du deaktiverer denne indstilling, vises denne pop op-boks ikke, selvom du laver en syntaksfejl. Imidlertid ville der være en farveændring i kodeteksten for at indikere, at der er en fejl.

Hvis du er nybegynder, anbefaler jeg, at du holder denne indstilling aktiveret. Efterhånden som du bliver mere erfaren med kodning, kan du begynde at finde disse pop-up-bokse irriterende, og derefter kan du deaktivere denne mulighed.

Kræv variabel erklæring

Dette er en mulighed, jeg anbefaler at aktivere.

Når du arbejder med VBA, ville du bruge variabler til at holde forskellige datatyper og objekter.

Når du aktiverer denne mulighed, indsætter den automatisk erklæringen 'Eksplicit valgmulighed' øverst i kodevinduet. Dette tvinger dig til at deklarere alle de variabler, du bruger i din kode. Hvis du ikke erklærer en variabel og forsøger at udføre koden, viser den en fejl (som vist nedenfor).

I ovenstående tilfælde brugte jeg variablen Var, men jeg erklærede det ikke. Så når jeg prøver at køre koden, viser den en fejl.

Denne mulighed er ganske nyttig, når du har mange variabler. Det hjælper mig ofte med at finde navne med stavefejl, da de betragtes som ikke -erklærede, og der vises en fejl.

Bemærk: Når du aktiverer denne mulighed, påvirker det ikke de eksisterende moduler.

Auto List Member

Denne mulighed er ganske nyttig, da den hjælper dig med at få en liste over egenskaber for metoder til et objekt.

For eksempel, hvis jeg vil slette et regneark (Sheet1), skal jeg bruge linjen Sheet1.Delete.

Mens jeg skriver koden, så snart jeg skriver prikken, viser den mig alle de metoder og egenskaber, der er knyttet til regnearksobjektet (som vist nedenfor).

Automatisk listefunktion er fantastisk, da den giver dig mulighed for at:

  • Vælg hurtigt ejendommen og metoden fra listen og sparer tid
  • Viser dig alle de egenskaber og metoder, som du muligvis ikke er klar over
  • Undgå at lave stavefejl

Denne indstilling er som standard aktiveret, og jeg anbefaler at beholde den på den måde.

Indstillinger for automatisk hurtig info

Når du skriver en funktion i Excel -regneark, viser den dig nogle oplysninger om funktionen - f.eks. De argumenter, den tager.

På samme måde, når du skriver en funktion i VBA, viser den dig nogle oplysninger (som vist nedenfor). Men for at det skal ske, skal du sørge for, at indstillingen Auto hurtig info er aktiveret (hvilket den er som standard).

Indstillinger for automatiske datatip

Når du går gennem din kode linje for linje og placerer markøren over et variabelnavn, viser det dig værdien af ​​variablen.

Jeg finder det ganske nyttigt, når fejlfinding af koden eller går gennem koden linje for linje, der har sløjfer i den.

I ovenstående eksempel, så snart jeg sætter markøren over variablen (var), viser den den værdi, den har.

Denne indstilling er som standard aktiveret, og jeg anbefaler, at du beholder den på den måde.

Auto indrykning

Da VBA -koder kan blive lange og rodede, øger brug af indrykning kodens læsbarhed.

Når du skriver kode, kan du indrykke med tabulatortasten.

Denne mulighed sikrer, at når du er færdig med den indrykkede linje og trykker på enter, starter den næste linje ikke helt fra begyndelsen, men har samme indrykning som den forrige linje.

I ovenstående eksempel, efter at jeg har skrevet Debug.Print -linjen og trykket på enter, starter den lige under den (med samme indrykningsniveau).

Jeg finder denne mulighed nyttig, og hvis du slukker dette, ville det betyde, at man hver især indrykker hver linje i en kodeblok, som jeg vil have indrykket.

Du kan ændre indrykningsværdien, hvis du vil. Jeg holder den på standardværdien.

Træk og slip tekstredigering

Når denne indstilling er aktiveret, giver den dig mulighed for at vælge en kodeblok og trække og slippe den.

Det sparer tid, da du ikke først skal skære og derefter indsætte det. Du kan simpelthen vælge og trække den.

Denne indstilling er som standard aktiveret, og jeg anbefaler, at du beholder den på den måde.

Standard til fuld modulvisning

Når denne indstilling er aktiveret, vil du kunne se alle procedurerne i et modul i en enkelt liste, der kan rulles.

Hvis du deaktiverer denne mulighed, vil du kun kunne se et modul ad gangen. Du bliver nødt til at foretage et valg af det modul, du vil se, fra rullemenuen øverst til højre i kodevinduet.

Denne indstilling er som standard aktiveret, og jeg anbefaler at beholde den på den måde.

En af grundene til, at du måske vil deaktivere det, når du har flere enorme procedurer og ruller hen over disse, tager tid, eller når du har mange procedurer, og du hurtigt vil finde det i stedet for at spilde tid på at rulle.

Procedure Separator

Når denne indstilling er aktiveret, vil du se en linje (en slags opdeling) mellem to procedurer.

Jeg finder dette nyttigt, da det visuelt viser, når den ene procedure slutter, og den anden starter.

Det er aktiveret som standard, og jeg anbefaler at beholde det på den måde.

Fanen Editorformat

Med indstillingerne på fanen Editorformat kan du tilpasse den måde, din kode ser ud på i kodevinduet.

Personligt beholder jeg alle standardindstillingerne, da jeg har det fint med det. Hvis du vil, kan du justere dette baseret på dine præferencer.

For at foretage en ændring skal du først vælge en mulighed i feltet Kodefarver. Når en indstilling er valgt, kan du ændre forgrunden, baggrunden og indikatorfarven for den.

Skrifttype og skriftstørrelse kan også indstilles på denne fane. Det anbefales at bruge en skrifttype med fast bredde, f.eks. Courier New, da det gør koden mere læsbar.

Bemærk, at skrifttypen og størrelsesindstillingen forbliver den samme for alle kodetyper (dvs. alle de kodetyper, der vises i kodefarveboksen).

Nedenfor er et billede, hvor jeg har valgt Breakpoint, og jeg kan ændre formateringen af ​​det.

Bemærk: Indstillingen Marginindikatorlinje, når den er aktiveret, viser en lille margenlinje til venstre for koden. Det er nyttigt, da det viser nyttige indikatorer, når koden udføres. I ovenstående eksempel, når du angiver et brudpunkt, viser det automatisk en rød prik til venstre for linjen i margenlinjen. Alternativt for at indstille et brudpunkt kan du blot klikke på margenlinjen til venstre for den kodelinje, du vil have som brydpunkt.

Som standard er Margin Indicator Bar aktiveret, og jeg anbefaler at beholde det på den måde.

En af mine VBA -kursister fandt denne tilpasningsmulighed nyttig, og hun var farveblind. Ved hjælp af mulighederne her kunne hun indstille den farve og formater, der gjorde det let for hende at arbejde med VBA.

Fanen Generelt

Fanen Generelt har mange muligheder, men du behøver ikke ændre noget af det.

Jeg anbefaler, at du beholder alle mulighederne som de er.

En vigtig mulighed at kende til på denne fane er Fejlhåndtering.

Som standard er 'Break on Unhandled Errors' valgt, og jeg anbefaler at beholde det på den måde.

Denne mulighed betyder, at hvis din kode støder på en fejl, og du ikke allerede har håndteret denne fejl i din kode, så vil den gå i stykker og stoppe. Men hvis du har rettet fejlen (f.eks. Ved at bruge On Error Resume Next eller On Error Goto options), så går den ikke i stykker (da fejlene ikke håndteres).

Fanen Docking

I denne fane kan du angive, hvilke vinduer du vil have docket.

Docking betyder, at du kan fastsætte placeringen af ​​et vindue (f.eks. Projektudforsker eller vinduet Egenskaber), så det ikke flyder rundt, og du kan se alle de forskellige vinduer på samme tid.

Hvis du ikke lægger til dockingstation, kan du se et vindue ad gangen i fuldskærmstilstand og skal skifte til det andet.

Jeg anbefaler at beholde standardindstillingerne.

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave