Visual Basic Editor - Hvordan åpne og bruke det i Excel

Det første trinnet for å jobbe med VBA i Excel er å bli kjent med Visual Basic Editor (også kalt VBA Editor eller VB Editor).

I denne opplæringen vil jeg dekke alt det er å vite om VBA Editor og noen nyttige alternativer du bør vite når du koder i Excel VBA.

Hva er Visual Basic Editor i Excel?

Visual Basic Editor er et eget program som er en del av Excel og åpnes når du åpner en Excel -arbeidsbok. Som standard er den skjult, og for å få tilgang til den må du aktivere den.

VB Editor er stedet der du beholder VB -koden.

Det er flere måter du får koden i VB Editor:

  1. Når du spiller inn en makro, oppretter den automatisk en ny modul i VB Editor og setter inn koden i den modulen.
  2. Du kan skrive inn VB -kode manuelt i VB -editoren.
  3. Du kan kopiere en kode fra en annen arbeidsbok eller fra internett og lime den inn i VB Editor.

Åpner VB Editor

Det er forskjellige måter å åpne Visual Basic Editor i Excel:

  1. Bruke en hurtigtast (enklest og raskest)
  2. Bruk fanen Utvikler.
  3. Bruke regnearkfanene.

La oss gå igjennom hver av disse raskt.

Tastatursnarvei for å åpne Visual Basic Editor

Den enkleste måten å åpne Visual Basic -editoren er å bruke hurtigtasten - ALT + F11 (hold inne ALT -tasten og trykk på F11 -tasten).

Så snart du gjør dette, åpnes det et eget vindu for Visual Basic -editoren.

Denne snarveien fungerer som en veksle, så når du bruker den igjen, tar den deg tilbake til Excel -programmet (uten å lukke VB Editor).

Snarveien for Mac -versjonen er Opt + F11 eller Fn + Opt + F11

Bruk fanen Utvikler

Slik åpner du Visual Basic Editor fra båndet:

  1. Klikk på Utvikler -fanen (hvis du ikke ser en utviklerfane, kan du lese denne om hvordan du får den).
  2. Klikk på Visual Basic i gruppen Kode.

Bruke fanen Regneark

Dette er en mindre brukt metode for å åpne Vb Editor.

Gå til en av regnearkfanene, høyreklikk og velg "Vis kode".

Denne metoden åpner ikke bare VB Editor, den tar deg også til kodevinduet for regnearkobjektet.

Dette er nyttig når du vil skrive kode som bare fungerer for et bestemt regneark. Dette er vanligvis tilfellet med regnearkhendelser.

Anatomi av Visual Basic Editor i Excel

Når du åpner VB Editor for første gang, kan det se litt overveldende ut.

Det er forskjellige alternativer og seksjoner som kan virke helt nye i begynnelsen.

Den har også et gammelt utseende på 97 dager i Excel. Selv om Excel har forbedret seg enormt i design og brukervennlighet gjennom årene, har VB Editor ikke sett noen endring i hvordan det ser ut.

I denne delen tar jeg deg gjennom de forskjellige delene av Visual Basic Editor -programmet.

Merk: Da jeg begynte å bruke VBA for mange år siden, var jeg ganske overveldet over alle disse nye alternativene og vinduene. Men etter hvert som du blir vant til å jobbe med VBA, vil du bli komfortabel med de fleste av disse. Og mesteparten av tiden trenger du ikke å bruke alle alternativene, bare en hånd full.

Nedenfor er et bilde av de forskjellige komponentene i VB Editor. Disse blir deretter beskrevet i detalj i avsnittene nedenfor i denne opplæringen.

La oss nå raskt gå gjennom hver av disse komponentene og forstå hva den gjør:

Menyfelt

Det er her du har alle alternativene du kan bruke i VB Editor. Det ligner på Excel -båndet der du har faner og alternativer for hver fane.

Du kan utforske de tilgjengelige alternativene ved å klikke på hvert av menyelementene.

Du vil legge merke til at de fleste alternativene i VB Editor har hurtigtaster nevnt ved siden av. Når du blir vant til noen hurtigtaster, blir det veldig enkelt å jobbe med VB Editor.

Verktøylinje

Som standard er det en verktøylinje i VB Editor som har noen nyttige alternativer som du sannsynligvis vil trenge oftest. Dette er akkurat som verktøylinjen for hurtig tilgang i Excel. Det gir deg rask tilgang til noen av de nyttige alternativene.

Du kan tilpasse det litt ved å fjerne eller legge til alternativer (ved å klikke på den lille nedoverpilen på slutten av verktøylinjen).

I de fleste tilfeller er standardverktøylinjen alt du trenger når du arbeider med VB Editor.

Du kan flytte verktøylinjen over menylinjen ved å klikke på de tre grå prikkene (i begynnelsen av verktøylinjen) og dra den over menylinjen.

Merk: Det er fire verktøylinjer i VB Editor - Standard, Debug, Edit og User -skjemaet. Det du ser på bildet ovenfor (som også er standard) er standard verktøylinje. Du får tilgang til andre verktøylinjer ved å gå til Vis -alternativet og holde markøren på verktøylinjen. Du kan legge til en eller flere verktøylinjer i VB Editor hvis du vil.

Project Explorer

Project Explorer er et vindu til venstre som viser alle objektene som er åpne i Excel.

Når du jobber med Excel, er hver arbeidsbok eller tilleggsprogram som er åpent et prosjekt. Og hvert av disse prosjektene kan ha en samling objekter i seg.

For eksempel, i bildet nedenfor viser Project Explorer de to arbeidsbøkene som er åpne (Book1 og Book2) og objektene i hver arbeidsbok (regneark, ThisWorkbook og Module in Book1).

Det er et plussikon til venstre for objekter som du kan bruke til å skjule listen over objekter eller utvide og se den komplette listen over objekter.

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

  1. Alle åpne arbeidsbøker - i hver arbeidsbok (som også kalles et prosjekt), kan du ha følgende objekter:
    • Regnearkobjekt for hvert regneark i arbeidsboken
    • ThisWorkbook -objekt som representerer selve arbeidsboken
    • Kartoversikt gjenstand for hvert diagramark (disse er ikke like vanlige som regneark)
    • Moduler - Det er her koden som genereres med en makroopptaker går. Du kan også skrive eller kopiere og lime inn VBA-kode her.
  2. Alle åpne tillegg

Se på Project Explorer som et sted som skisserer alle objektene som er åpne i Excel på det gitte tidspunktet.

Hurtigtasten for å åpne Project Explorer er Kontroll + R (hold inne kontrolltasten og trykk deretter på R). For å lukke den, klikker du bare på lukkeikonet øverst til høyre i Project Explorer -vinduet.

Merk: For hvert objekt i Project Explorer er det et kodevindu der du kan skrive koden (eller kopiere og lime den inn et sted). Kodevinduet vises når du dobbeltklikker på objektet.

Egenskaper -vinduet

Egenskaper -vinduet er der du får se egenskapene til det valgte objektet. Hvis du ikke allerede har vinduet Egenskaper, kan du få det ved å bruke hurtigtasten F4 (eller gå til kategorien Vis og klikk på Egenskaper -vinduet).

Egenskaper -vinduet er et flytende vindu som du kan legge til i VB Editor. I eksemplet nedenfor har jeg lagt den til under Project Explorer.

Egenskaper -vinduet lar oss endre egenskapene til et valgt objekt. For eksempel, hvis jeg vil gjøre et regneark skjult (eller veldig skjult), kan jeg gjøre det ved å endre den synlige egenskapen til det valgte regnearkobjektet.

I slekt: Skjule et regneark i Excel (som ikke lett kan skjules)

Kodevindu

Det er et kodevindu for hvert objekt som er oppført i Project Explorer. Du kan åpne kodevinduet for et objekt ved å dobbeltklikke på det i Project Explorer-området.

Kodevindu er der du skriver koden eller kopierer inn en kode fra et annet sted.

Når du spiller inn en makro, går koden for den inn i kodevinduet til en modul. Excel setter automatisk inn en modul for å plassere koden i den når du spiller inn en makro.

I slekt: Hvordan kjøre en makro (VBA -kode) i Excel.

Umiddelbart vindu

Vinduet Umiddelbart brukes for det meste ved feilsøking av kode. En måte jeg bruker vinduet Umiddelbar er ved å bruke en Print.Debug -setning i koden og deretter kjøre koden.

Det hjelper meg å feilsøke koden og finne ut hvor koden min sitter fast. Hvis jeg får resultatet av Print.Debug i det umiddelbare vinduet, vet jeg at koden virket i det minste til den linjen.

Hvis du ikke er vant til VBA -koding, kan det ta litt tid før du kan bruke det umiddelbare vinduet for feilsøking.

Som standard er ikke det umiddelbare vinduet synlig i VB Editor. Du kan få det ved å bruke hurtigtasten Control + G (eller gå til kategorien Vis og klikk på 'Umiddelbart vindu').

Hvor å legge til kode i VB Editor

Jeg håper du nå har en grunnleggende forståelse av hva VB Editor er og hva alle deler den har.

I denne delen av denne opplæringen vil jeg vise deg hvor du skal legge til en VBA -kode i Visual Basic Editor.

Det er to steder hvor du kan legge til VBA -koden i Excel:

  1. Kodevinduet for et objekt. Disse objektene kan være en arbeidsbok, regneark, brukerskjema, etc.
  2. Kodevinduet til en modul.

Modulkodevindu mot vindu for objektkode

La meg først raskt fjerne forskjellen mellom å legge til en kode i en modul mot å legge til en kode i et objektkodevindu.

Når du legger til en kode til noen av objektene, er den avhengig av en handling av objektet som vil utløse koden. For eksempel, hvis du vil skjule alle regnearkene i en arbeidsbok så snart du åpner arbeidsboken, vil koden gå i ThisWorkbook -objektet (som representerer arbeidsboken).

Utløseren, i dette tilfellet, åpner arbeidsboken.

På samme måte, hvis du vil beskytte et regneark så snart et annet regneark er aktivert, vil koden for det gå i regnearkets kodevindu.

Disse utløserne kalles hendelser, og du kan knytte en kode som skal kjøres når en hendelse oppstår.

I slekt: Lær mer om hendelser i VBA.

Tvert imot må koden i modulen utføres enten manuelt (eller den kan også kalles fra andre underprogrammer).

Når du spiller inn en makro, oppretter Excel automatisk en modul og setter den registrerte makrokoden inn i den. Hvis du må kjøre denne koden, må du kjøre makroen manuelt.

Legger til VBA -kode i modulen

Mens opptak av en makro automatisk oppretter en modul og setter inn koden i den, er det noen begrensninger når du bruker en makroopptaker. For eksempel kan den ikke bruke looper eller If Then Else -forhold.

I slike tilfeller er det bedre å enten kopiere og lime inn koden manuelt eller skrive koden selv.

En modul kan brukes til å holde følgende typer VBA -koder:

  1. Erklæringer: Du kan deklarere variabler i en modul. Ved å deklarere variabler kan du spesifisere hvilken type data en variabel kan inneholde. Du kan kun deklarere en variabel for en underrutine eller for alle delrutiner i modulen (eller alle modulene)
  2. Subrutiner (prosedyrer): Dette er koden som har trinnene du vil at VBA skal utføre.
  3. Funksjonsprosedyrer: Dette er en kode som returnerer en enkelt verdi, og du kan bruke den til å lage egendefinerte funksjoner (også kalt User Defined Functions eller UDFs i VBA)

Som standard er ikke en modul en del av arbeidsboken. Du må sette den inn før du bruker den.

Legge til en modul i VB Editor

Nedenfor er trinnene for å legge til en modul:

  1. Høyreklikk på et hvilket som helst objekt i arbeidsboken (der du vil ha modulen).
  2. Hold markøren på alternativet Sett inn.
  3. Klikk på modul.

Dette ville umiddelbart opprette en mappe som heter Module og sette inn et objekt som heter Module 1. Hvis du allerede har satt inn en modul, vil trinnene ovenfor sette inn en annen modul.

Når modulen er satt inn, kan du dobbeltklikke på modulobjektet i Project Explorer, og det vil åpne kodevinduet for det.

Nå kan du kopiere og lime inn koden eller skrive den selv.

Fjerne modulen

Nedenfor er trinnene for å fjerne en modul i Excel VBA:

  1. Høyreklikk på modulen du vil fjerne.
  2. Klikk på alternativet Fjern modul.
  3. Klikk på Nei i dialogboksen som åpnes.

Merk: Du kan eksportere en modul før du fjerner den. Den blir lagret som en .bas -fil, og du kan importere den i et annet prosjekt. For å eksportere en modul, høyreklikker du på modulen og klikker på 'Eksporter fil'.

Legge til kode i vinduet Objektkode

For å åpne kodevinduet for et objekt, bare dobbeltklikk på det.

Når den åpnes, kan du skrive inn koden manuelt eller kopiere og lime inn koden fra andre moduler eller fra internett.

Vær oppmerksom på at noen av objektene lar deg velge hendelsen du vil skrive koden for.

For eksempel, hvis du vil skrive en kode for at noe skal skje når valget endres i regnearket, må du først velge regneark fra rullegardinmenyen øverst til venstre i kodevinduet og deretter velge endringshendelsen fra rullegardinlisten -ned til høyre.

Merk: Disse hendelsene er spesifikke for objektet. Når du åpner kodevinduet for en arbeidsbok, vil du se hendelsene knyttet til arbeidsbokobjektet. Når du åpner kodevinduet for et regneark, vil du se hendelsene knyttet til regnearkobjektet.

Tilpasse VB Editor

Selv om standardinnstillingene i Visual Basic Editor er gode nok for de fleste brukere, lar det deg tilpasse grensesnittet og noen få funksjoner ytterligere.

I denne delen av opplæringen vil jeg vise deg alle alternativene du har når du tilpasser VB Editor.

For å tilpasse VB Editor -miljøet, klikk på Verktøy i menylinjen og klikk deretter på Alternativer.

Dette åpner dialogboksen Alternativer som gir deg alle tilpasningsalternativene i VB Editor. Dialogboksen "Alternativer" har fire faner (som vist nedenfor) som har forskjellige tilpasningsalternativer for Visual Basic Editor.

La oss raskt gå gjennom hver av disse fanene og de viktige alternativene i hver.

Editor -fanen

Mens de innebygde innstillingene fungerer bra i de fleste tilfeller, la meg fortsatt gå gjennom alternativene i denne kategorien.

Etter hvert som du blir mer dyktig i arbeidet med VBA i Excel, kan det være lurt å tilpasse VB Editor ved å bruke noen av disse alternativene.

Automatisk syntaks sjekk

Når du arbeider med VBA i Excel, så snart du gjør en syntaksfeil, blir du møtt av en popup-dialogboks (med noen beskrivelse om feilen). Noe som vist nedenfor:

Hvis du deaktiverer dette alternativet, vises ikke denne forgrunnsboksen selv når du lager en syntaksfeil. Imidlertid vil det være en endring i farge i kodeteksten for å indikere at det er en feil.

Hvis du er nybegynner, anbefaler jeg at du holder dette alternativet aktivert. Etter hvert som du blir mer erfaren med koding, kan du begynne å finne disse popup-boksene irriterende, og deretter kan du deaktivere dette alternativet.

Krev variabel erklæring

Dette er et alternativ jeg anbefaler å aktivere.

Når du jobber med VBA, bruker du variabler for å holde forskjellige datatyper og objekter.

Når du aktiverer dette alternativet, setter det automatisk inn ‘Alternativ eksplisitt’ setningen øverst i kodevinduet. Dette tvinger deg til å deklarere alle variablene du bruker i koden din. Hvis du ikke deklarerer en variabel og prøver å utføre koden, viser den en feil (som vist nedenfor).

I tilfellet ovenfor brukte jeg variabelen Var, men jeg erklærte det ikke. Så når jeg prøver å kjøre koden, viser det en feil.

Dette alternativet er ganske nyttig når du har mange variabler. Det hjelper meg ofte å finne feilstavede variablernavn ettersom de anses som ikke -deklarert, og det vises en feil.

Merk: Når du aktiverer dette alternativet, påvirker det ikke de eksisterende modulene.

Auto List Member

Dette alternativet er ganske nyttig, da det hjelper deg med å få en liste over egenskaper for metoder for et objekt.

For eksempel, hvis jeg vil slette et regneark (Sheet1), må jeg bruke linjen Sheet1.Delete.

Mens jeg skriver koden, så snart jeg skriver prikken, vil den vise meg alle metodene og egenskapene knyttet til regnearkobjektet (som vist nedenfor).

Autolistfunksjonen er flott ettersom den lar deg:

  • Velg eiendommen og metoden raskt fra listen og sparer tid
  • Viser deg alle egenskapene og metodene du kanskje ikke er klar over
  • Unngå å skrive stavefeil

Dette alternativet er aktivert som standard, og jeg anbefaler å beholde det slik.

Alternativer for automatisk hurtiginformasjon

Når du skriver en funksjon i Excel -regneark, viser den deg informasjon om funksjonen - for eksempel argumentene den tar.

På samme måte, når du skriver inn en funksjon i VBA, viser den deg litt informasjon (som vist nedenfor). Men for at det skal skje, må du sørge for at alternativet Auto Quick Info er aktivert (som det er som standard).

Alternativer for automatiske datatips

Når du går gjennom koden din linje for linje og plasserer markøren over et variabelnavn, viser den verdien av variabelen.

Jeg synes det er ganske nyttig når jeg feilsøker koden eller går gjennom koden linje for linje som har sløyfer i den.

I eksemplet ovenfor, så snart jeg setter markøren over variabelen (var), viser den verdien den har.

Dette alternativet er aktivert som standard, og jeg anbefaler at du beholder det slik.

Auto innrykk

Siden VBA -koder kan bli lange og rotete, øker bruk av innrykk lesbarheten til koden.

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

Dette alternativet sikrer at når du er ferdig med den innrykkede linjen og trykker enter, starter den neste linjen ikke helt fra begynnelsen, men har samme innrykk som den forrige linjen.

I eksemplet ovenfor, etter at jeg har skrevet Debug.Print -linjen og trykket enter, starter den rett under den (med samme innrykknivå).

Jeg synes dette alternativet er nyttig, og å slå av dette vil bety at hver linje blir manuelt innrykket i en kodeblokk som jeg vil ha innrykket.

Du kan endre innrykkingsverdien hvis du vil. Jeg holder den på standardverdien.

Dra og slipp tekstredigering

Når dette alternativet er aktivert, lar det deg velge en kodeblokk og dra og slippe den.

Det sparer tid da du ikke trenger å først klippe og lime det inn. Du kan ganske enkelt velge og dra den.

Dette alternativet er aktivert som standard, og jeg anbefaler at du beholder det slik.

Standard til full modulvisning

Når dette alternativet er aktivert, vil du kunne se alle prosedyrene i en modul i en enkelt rullbar liste.

Hvis du deaktiverer dette alternativet, vil du bare kunne se én modul om gangen. Du må velge et av modulene du vil se fra rullegardinmenyen øverst til høyre i kodevinduet.

Dette alternativet er aktivert som standard, og jeg anbefaler å beholde det slik.

En av grunnene til at du kanskje vil deaktivere det når du har flere prosedyrer som er enorme og ruller over disse, tar tid, eller når du har mange prosedyrer og du vil raskt finne det i stedet for å kaste bort tid på å rulle.

Fremgangsmåte Separator

Når dette alternativet er aktivert, vil du se en linje (en slags skillelinje) mellom to prosedyrer.

Jeg synes dette er nyttig ettersom det visuelt viser når en prosedyre avsluttes og den andre starter.

Det er aktivert som standard, og jeg anbefaler å beholde det slik.

Kategorien Editorformat

Med alternativene i kategorien Editorformat kan du tilpasse måten koden ser ut i kodevinduet.

Personlig beholder jeg alle standardalternativene ettersom jeg har det bra med det. Hvis du vil, kan du justere dette basert på dine preferanser.

For å gjøre en endring må du først velge et alternativ i boksen Kodefarger. Når et alternativ er valgt, kan du endre forgrunnen, bakgrunnen og indikatorfargen for det.

Skrifttypen og skriftstørrelsen kan også angis i denne kategorien. Det anbefales å bruke en skrift med fast bredde, for eksempel Courier New, da det gjør koden mer lesbar.

Vær oppmerksom på at skrifttypen og størrelsesinnstillingen forblir den samme for alle kodetyper (dvs. alle kodetypene som vises i kodefargeboksen).

Nedenfor er et bilde der jeg har valgt Breakpoint, og jeg kan endre formateringen av det.

Merk: Alternativet Margin Indikatorlinje når det er aktivert, viser en liten marglinje til venstre for koden. Det er nyttig ettersom det viser nyttige indikatorer når du utfører koden. I eksemplet ovenfor, når du angir et brytpunkt, vil det automatisk vise en rød prikk til venstre for linjen i marglinjen. Alternativt, for å angi et brytpunkt, kan du ganske enkelt klikke på marglinjen til venstre for kodelinjen du vil ha som brytpunkt.

Som standard er Margin Indicator Bar aktivert, og jeg anbefaler å beholde det slik.

En av mine VBA -kursstudenter fant disse tilpasningsmulighetene nyttige, og hun var fargeblind. Ved å bruke alternativene her, kunne hun angi fargen og formatene som gjorde det enkelt for henne å jobbe med VBA.

Fanen Generelt

Kategorien Generelt har mange alternativer, men du trenger ikke å endre noe av det.

Jeg anbefaler at du beholder alle alternativene som de er.

Et viktig alternativ å vite om i denne kategorien er Feilhåndtering.

Som standard er ‘Break on Unhandled Errors’ valgt, og jeg anbefaler å beholde det slik.

Dette alternativet betyr at hvis koden din oppdager en feil, og du ikke allerede har håndtert den feilen i koden din, vil den gå i stykker og stoppe. Men hvis du har løst feilen (for eksempel ved å bruke On Error Resume Next eller On Error Goto -alternativer), vil den ikke gå i stykker (ettersom feilene ikke er ubehandlet).

Docking -fanen

I denne kategorien kan du angi hvilke vinduer du vil ha dokking.

Docking betyr at du kan fikse posisjonen til et vindu (for eksempel prosjektutforsker eller vinduet Egenskaper) slik at det ikke flyter rundt og du kan se alle de forskjellige vinduene samtidig.

Hvis du ikke legger til kai, vil du kunne se ett vindu om gangen i fullskjermsmodus og må bytte til det andre.

Jeg anbefaler å beholde standardinnstillingene.

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave