Visual Basic Editor - Hur man öppnar och använder det i Excel

Det första steget för att arbeta med VBA i Excel är att bekanta dig med Visual Basic Editor (även kallad VBA Editor eller VB Editor).

I denna handledning kommer jag att täcka allt som finns att veta om VBA Editor och några användbara alternativ som du bör veta när du kodar i Excel VBA.

Vad är Visual Basic Editor i Excel?

Visual Basic Editor är ett separat program som ingår i Excel och öppnas när du öppnar en Excel -arbetsbok. Som standard är det dolt och för att komma åt det måste du aktivera det.

VB Editor är platsen där du behåller VB -koden.

Det finns flera sätt att få koden i VB Editor:

  1. När du spelar in ett makro skapar den automatiskt en ny modul i VB -redigeraren och sätter in koden i den modulen.
  2. Du kan manuellt skriva VB -kod i VB -redigeraren.
  3. Du kan kopiera en kod från någon annan arbetsbok eller från internet och klistra in den i VB Editor.

Öppnar VB Editor

Det finns olika sätt att öppna Visual Basic Editor i Excel:

  1. Använda en kortkommando (enklast och snabbast)
  2. Använd fliken Utvecklare.
  3. Använda flikarna i kalkylbladet.

Låt oss gå igenom var och en av dessa snabbt.

Kortkommando för att öppna Visual Basic Editor

Det enklaste sättet att öppna Visual Basic -redigeraren är att använda kortkommandot - ALT + F11 (håll ned ALT -tangenten och tryck på F11 -knappen).

Så snart du gör detta öppnas ett separat fönster för Visual Basic -redigeraren.

Den här genvägen fungerar som en växling, så när du använder den igen tar den dig tillbaka till Excel -programmet (utan att stänga VB Editor).

Genvägen för Mac -versionen är Opt + F11 eller Fn + Opt + F11

Använd fliken Utvecklare

Så här öppnar du Visual Basic Editor från menyfliksområdet:

  1. Klicka på fliken Utvecklare (om du inte ser en utvecklarflik, läs detta om hur du får det).
  2. Klicka på Visual Basic i gruppen Kod.

Använda fliken Arbetsblad

Detta är en mindre använd metod för att öppna Vb Editor.

Gå till någon av kalkylbladets flikar, högerklicka och välj "Visa kod".

Denna metod öppnar inte bara VB Editor, den tar dig också till kodfönstret för det kalkylbladobjektet.

Detta är användbart när du vill skriva kod som bara fungerar för ett specifikt kalkylblad. Detta är vanligtvis fallet med kalkylbladshändelser.

Anatomi för Visual Basic Editor i Excel

När du öppnar VB Editor för första gången kan det se lite överväldigande ut.

Det finns olika alternativ och avsnitt som kan verka helt nya först.

Det har också fortfarande ett gammalt utseende på 97 dagar i Excel. Även om Excel har förbättrats enormt i design och användbarhet genom åren, har VB Editor inte sett någon förändring i hur det ser ut.

I det här avsnittet tar jag dig igenom de olika delarna av programmet Visual Basic Editor.

Obs: När jag började använda VBA för flera år sedan var jag ganska överväldigad av alla dessa nya alternativ och fönster. Men när du vänjer dig vid att arbeta med VBA, skulle du bli bekväm med de flesta av dessa. Och för det mesta kommer du inte att behöva använda alla alternativ, bara en hand full.

Nedan visas en bild av de olika komponenterna i VB Editor. Dessa beskrivs sedan i detalj i nedanstående avsnitt i denna handledning.

Låt oss nu snabbt gå igenom var och en av dessa komponenter och förstå vad det gör:

Menyfältet

Det är här du har alla alternativ som du kan använda i VB Editor. Det liknar Excel -bandet där du har flikar och alternativ för varje flik.

Du kan utforska de tillgängliga alternativen genom att klicka på vart och ett av menyelementen.

Du kommer att märka att de flesta alternativen i VB Editor har kortkommandon som nämns bredvid. När du väl har vant dig vid några kortkommandon blir det väldigt enkelt att arbeta med VB Editor.

Verktygsfält

Som standard finns det ett verktygsfält i VB Editor som har några användbara alternativ som du sannolikt kommer att behöva oftast. Detta är precis som verktygsfältet Snabbåtkomst i Excel. Det ger dig snabb åtkomst till några av de användbara alternativen.

Du kan anpassa det lite genom att ta bort eller lägga till alternativ till det (genom att klicka på den lilla nedåtpekande pilen i slutet av verktygsfältet).

I de flesta fall är standardverktygsfältet allt du behöver när du arbetar med VB Editor.

Du kan flytta verktygsfältet ovanför menyraden genom att klicka på de tre grå prickarna (i början av verktygsfältet) och dra det ovanför menyraden.

Obs! Det finns fyra verktygsfält i VB Editor - Standard, Debug, Edit och User -formulär. Det du ser i bilden ovan (vilket också är standard) är standardverktygsfältet. Du kan komma åt andra verktygsfält genom att gå till alternativet Visa och hålla markören på alternativet Verktygsfält. Du kan lägga till en eller flera verktygsfält i VB -redigeraren om du vill.

Project Explorer

Project Explorer är ett fönster till vänster som visar alla objekt som för närvarande är öppna i Excel.

När du arbetar med Excel är varje arbetsbok eller tillägg som är öppet ett projekt. Och vart och ett av dessa projekt kan ha en samling objekt i sig.

Till exempel i bilden nedan visar Project Explorer de två arbetsböcker som är öppna (bok 1 och bok 2) och objekten i varje arbetsbok (kalkylblad, ThisWorkbook och modul i bok 1).

Det finns en plusikon till vänster om objekt som du kan använda för att komprimera listan över objekt eller expandera och se hela listan med objekt.

Följande objekt kan vara en del av Project Explorer:

  1. Alla öppna arbetsböcker - i varje arbetsbok (som också kallas ett projekt) kan du ha följande objekt:
    • Objekt för kalkylblad för varje kalkylblad i arbetsboken
    • ThisWorkbook -objekt som representerar själva arbetsboken
    • Chartsheet objekt för varje diagramark (dessa är inte lika vanliga som kalkylblad)
    • Moduler - Det är här koden som genereras med en makroinspelare går. Du kan också skriva eller kopiera-klistra in VBA-kod här.
  2. Alla öppna tillägg

Betrakta Project Explorer som en plats som beskriver alla objekt som är öppna i Excel vid en given tidpunkt.

Kortkommandot för att öppna Project Explorer är Kontroll + R (håll ned kontrollknappen och tryck sedan på R). För att stänga den, klicka helt enkelt på stängningsikonen längst upp till höger i Project Explorer -fönstret.

Obs! För varje objekt i Project Explorer finns det ett kodfönster där du kan skriva koden (eller kopiera och klistra in den någonstans). Kodfönstret visas när du dubbelklickar på objektet.

Egenskapsfönster

Egenskaper fönstret är där du får se egenskaperna för det markerade objektet. Om du inte redan har fönstret Egenskaper kan du få det med tangentbordsgenväg F4 (eller gå till fliken Visa och klicka på Egenskapsfönstret).

Egenskaper fönstret är ett flytande fönster som du kan docka i VB Editor. I exemplet nedan har jag dockat det precis under Project Explorer.

Egenskapsfönstret låter oss ändra egenskaperna för ett valt objekt. Om jag till exempel vill göra ett kalkylblad dolt (eller mycket dolt) kan jag göra det genom att ändra den synliga egenskapen för det valda kalkylbladobjektet.

Relaterad: Döljer ett kalkylblad i Excel (som inte kan döljas enkelt)

Kodfönster

Det finns ett kodfönster för varje objekt som listas i Project Explorer. Du kan öppna kodfönstret för ett objekt genom att dubbelklicka på det i Project Explorer-området.

Kodfönster är där du skriver din kod eller kopierar in en kod från någon annanstans.

När du spelar in ett makro går koden för det in i kodfönstret för en modul. Excel infogar automatiskt en modul för att placera koden i den när du spelar in ett makro.

Relaterad: Hur man kör ett makro (VBA -kod) i Excel.

Omedelbart fönster

Fönstret Omedelbar används mestadels vid felsökning av kod. Ett sätt att använda fönstret Omedelbar är att använda en Print.Debug -sats i koden och sedan köra koden.

Det hjälper mig att felsöka koden och avgöra var min kod fastnar. Om jag får resultatet av Print.Debug i det omedelbara fönstret vet jag att koden fungerade åtminstone fram till den raden.

Om du inte är ny på VBA -kodning kan det ta lite tid innan du kan använda det omedelbara fönstret för felsökning.

Som standard är det omedelbara fönstret inte synligt i VB -redigeraren. Du kan få det genom att använda tangentbordsgenvägen Control + G (eller gå till fliken Visa och klicka på "Omedelbart fönster").

Var ska man lägga till kod i VB Editor

Jag hoppas att du nu har en grundläggande förståelse för vad VB Editor är och vad alla delar har.

I det här avsnittet i den här självstudien visar jag var du ska lägga till en VBA -kod i Visual Basic Editor.

Det finns två platser där du kan lägga till VBA -koden i Excel:

  1. Kodfönstret för ett objekt. Dessa objekt kan vara en arbetsbok, kalkylblad, användarformulär etc.
  2. Kodfönstret för en modul.

Modulkodfönster mot fönster för objektkod

Låt mig först snabbt rensa skillnaden mellan att lägga till en kod i en modul mot att lägga till en kod i ett objektkodfönster.

När du lägger till en kod till något av objekten är det beroende av någon åtgärd av objektet som kommer att utlösa den koden. Om du till exempel vill avslöja alla kalkylblad i en arbetsbok så snart du öppnar den arbetsboken, går koden i ThisWorkbook -objektet (som representerar arbetsboken).

Utlösaren, i det här fallet, öppnar arbetsboken.

På samma sätt, om du vill skydda ett kalkylblad så snart något annat kalkylblad är aktiverat, går koden för det i kalkylbladets kodfönster.

Dessa triggers kallas händelser och du kan associera en kod som ska köras när en händelse inträffar.

Relaterad: Läs mer om evenemang i VBA.

Tvärtom, koden i modulen måste exekveras antingen manuellt (eller så kan den också anropas från andra underrutiner).

När du spelar in ett makro skapar Excel automatiskt en modul och infogar den inspelade makrokoden i den. Om du nu måste köra den här koden måste du köra makrot manuellt.

Lägga till VBA -kod i modulen

Medan inspelning av ett makro automatiskt skapar en modul och sätter in koden i den, finns det vissa begränsningar när du använder en makroinspelare. Till exempel kan den inte använda loopar eller If Then Else -förhållanden.

I sådana fall är det bättre att antingen kopiera och klistra in koden manuellt eller skriva koden själv.

En modul kan användas för att hålla följande typer av VBA -koder:

  1. Deklarationer: Du kan deklarera variabler i en modul. Genom att deklarera variabler kan du ange vilken typ av data en variabel kan innehålla. Du kan deklarera en variabel endast för en delrutin eller för alla delrutiner i modulen (eller alla moduler)
  2. Subrutiner (procedurer): Detta är koden som har stegen du vill att VBA ska utföra.
  3. Funktionsförfaranden: Detta är en kod som returnerar ett enda värde och du kan använda den för att skapa anpassade funktioner (även kallade användardefinierade funktioner eller UDF i VBA)

Som standard är en modul inte en del av arbetsboken. Du måste sätta in den först innan du använder den.

Lägga till en modul i VB Editor

Nedan följer stegen för att lägga till en modul:

  1. Högerklicka på ett objekt i arbetsboken (där du vill ha modulen).
  2. Håll muspekaren på alternativet Infoga.
  3. Klicka på Modul.

Detta skulle omedelbart skapa en mapp som heter Module och infoga ett objekt som heter Modul 1. Om du redan har en modul införd skulle ovanstående steg infoga en annan modul.

När modulen är införd kan du dubbelklicka på modulobjektet i Project Explorer så öppnas kodfönstret för den.

Nu kan du kopiera-klistra in koden eller skriva den själv.

Ta bort modulen

Nedan följer stegen för att ta bort en modul i Excel VBA:

  1. Högerklicka på modulen som du vill ta bort.
  2. Klicka på alternativet Ta bort modul.
  3. Klicka på Nej i dialogrutan som öppnas.

Obs! Du kan exportera en modul innan du tar bort den. Den sparas som en .bas -fil och du kan importera den i något annat projekt. För att exportera en modul, högerklicka på modulen och klicka på "Exportera fil".

Lägga till kod i fönstret Objektkod

För att öppna kodfönstret för ett objekt, dubbelklicka helt enkelt på det.

När den öppnas kan du ange koden manuellt eller kopiera-klistra in koden från andra moduler eller från internet.

Observera att vissa av objekten låter dig välja den händelse som du vill skriva koden för.

Om du till exempel vill skriva en kod för att något ska hända när valet ändras i kalkylbladet måste du först välja kalkylblad från rullgardinsmenyn högst upp till vänster i kodfönstret och sedan välja ändringshändelsen från rullgardinsmenyn -ned till höger.

Obs! Dessa händelser är specifika för objektet. När du öppnar kodfönstret för en arbetsbok ser du händelser relaterade till arbetsbokobjektet. När du öppnar kodfönstret för ett kalkylblad ser du händelserna relaterade till kalkylbladets objekt.

Anpassa VB Editor

Även om standardinställningarna för Visual Basic Editor är tillräckligt bra för de flesta användare, tillåter det dig att ytterligare anpassa gränssnittet och några funktioner.

I det här avsnittet av självstudien visar jag dig alla alternativ du har när du anpassar VB Editor.

För att anpassa VB Editor -miljön, klicka på Verktyg i menyraden och klicka sedan på Alternativ.

Detta öppnar dialogrutan Alternativ som ger dig alla anpassningsalternativ i VB Editor. Dialogrutan "Alternativ" har fyra flikar (som visas nedan) som har olika anpassningsalternativ för Visual Basic Editor.

Låt oss snabbt gå igenom var och en av dessa flikar och de viktiga alternativen i varje.

Editor -fliken

Medan de inbyggda inställningarna fungerar bra i de flesta fall, låt mig ändå gå igenom alternativen på den här fliken.

När du blir mer skicklig att arbeta med VBA i Excel kanske du vill anpassa VB Editor med några av dessa alternativ.

Automatisk syntaxkontroll

När du arbetar med VBA i Excel, så snart du gör ett syntaxfel, kommer du att hälsas av en popup-dialogruta (med lite beskrivning om felet). Något som visas nedan:

Om du inaktiverar det här alternativet visas den här popup-rutan inte ens när du gör ett syntaxfel. Det skulle dock bli en färgändring i kodtexten för att indikera att det finns ett fel.

Om du är nybörjare rekommenderar jag att du håller det här alternativet aktiverat. När du blir mer erfaren med kodning kan du börja hitta dessa popup-rutor irriterande och sedan kan du inaktivera det här alternativet.

Kräv variabel deklaration

Detta är ett alternativ som jag rekommenderar att aktivera.

När du arbetar med VBA använder du variabler för att hålla olika datatyper och objekt.

När du aktiverar det här alternativet infogas det automatiskt "Alternativet Explicit" -uttrycket högst upp i kodfönstret. Detta tvingar dig att deklarera alla variabler som du använder i din kod. Om du inte deklarerar en variabel och försöker köra koden kommer det att visa ett fel (som visas nedan).

I ovanstående fall använde jag variabeln Var, men jag deklarerade det inte. Så när jag försöker köra koden visar det ett fel.

Det här alternativet är ganska användbart när du har många variabler. Det hjälper mig ofta att hitta felstavade variabelnamn eftersom de anses vara odeklarerade och ett fel visas.

Obs! När du aktiverar det här alternativet påverkar det inte de befintliga modulerna.

Auto List Member

Det här alternativet är ganska användbart eftersom det hjälper dig att få en lista över egenskaper för metoder för ett objekt.

Om jag till exempel vill ta bort ett kalkylblad (Sheet1) måste jag använda raden Sheet1.Delete.

Medan jag skriver koden, så snart jag skriver pricken, kommer den att visa mig alla metoder och egenskaper som är associerade med kalkylbladobjektet (som visas nedan).

Autolistfunktionen är utmärkt eftersom den låter dig:

  • Välj snabbt egenskapen och metoden från listan och sparar tid
  • Visar dig alla egenskaper och metoder som du kanske inte är medveten om
  • Undvik stavfel

Det här alternativet är aktiverat som standard och jag rekommenderar att du håller det så.

Alternativ för automatisk snabbinfo

När du skriver en funktion i Excel -kalkylblad, visar den dig lite information om funktionen - till exempel argumenten den tar.

På samma sätt, när du skriver en funktion i VBA, visar den dig lite information (som visas nedan). Men för att det ska hända måste du se till att alternativet Auto Quick Info är aktiverat (vilket det är som standard).

Alternativ för automatiska datatips

När du går igenom din kod rad för rad och placerar markören ovanför ett variabelnamn, visar det värdet på variabeln.

Jag tycker att det är ganska användbart när jag felsöker koden eller går igenom koden rad för rad som har slingor i den.

I exemplet ovan, så snart jag lägger markören över variabeln (var), visar det värdet den innehar.

Det här alternativet är aktiverat som standard och jag rekommenderar att du behåller det så.

Auto indrag

Eftersom VBA -koder kan bli långa och stökiga, ökar användningen av indragning kodens läsbarhet.

När du skriver kod kan du indraga med tabbtangenten.

Detta alternativ säkerställer att när du är klar med den indragna raden och trycker på enter, börjar nästa rad inte från början, utan har samma indrag som den föregående raden.

I exemplet ovan, efter att jag skrivit Debug.Print -raden och tryckt på enter, börjar den precis under den (med samma indragningsnivå).

Jag tycker att det här alternativet är användbart och att stänga av detta skulle innebära att manuellt indragar varje rad i ett kodblock som jag vill ha indraget.

Du kan ändra indragningsvärdet om du vill. Jag håller det vid standardvärdet.

Dra och släpp textredigering

När det här alternativet är aktiverat kan du välja ett kodblock och dra och släppa det.

Det sparar tid eftersom du inte behöver klippa först och sedan klistra in det. Du kan helt enkelt välja och dra den.

Det här alternativet är aktiverat som standard och jag rekommenderar att du behåller det så.

Standard till helmodulvy

När det här alternativet är aktiverat kommer du att kunna se alla procedurer i en modul i en enda rullbar lista.

Om du inaktiverar det här alternativet kommer du bara att kunna se en modul åt gången. Du måste välja den modul du vill se från rullgardinsmenyn högst upp till höger i kodfönstret.

Det här alternativet är aktiverat som standard och jag rekommenderar att du håller det så.

En anledning till att du kanske vill inaktivera det när du har flera förfaranden som är enorma och rullar över dessa tar tid, eller när du har många procedurer och du snabbt vill hitta det istället för att slösa tid på att rulla.

Proceduravskiljare

När det här alternativet är aktiverat ser du en rad (ett slags avdelare) mellan två procedurer.

Jag tycker att det är användbart eftersom det visuellt visar när en procedur slutar och den andra startar.

Det är aktiverat som standard och jag rekommenderar att det är så.

Editor Format Tab

Med alternativen på fliken Editorformat kan du anpassa hur din kod ser ut i kodfönstret.

Personligen behåller jag alla standardalternativ eftersom jag har det bra med det. Om du vill kan du justera detta baserat på dina preferenser.

För att göra en ändring måste du först välja ett alternativ i rutan Kodfärger. När ett alternativ har valts kan du ändra förgrunden, bakgrunden och indikatorfärgen för det.

Teckensnittstypen och teckenstorleken kan också ställas in på den här fliken. Det rekommenderas att använda ett teckensnitt med fast bredd som Courier New, eftersom det gör koden mer läsbar.

Observera att teckensnittstypen och storleksinställningen kommer att förbli densamma för alla kodtyper (dvs. alla kodtyper som visas i rutan för kodfärger).

Nedan är en bild där jag har valt Brytpunkt, och jag kan ändra formateringen av den.

Obs! Alternativet Marginalindikator när det är aktiverat visar en liten marginalrad till vänster om koden. Det är användbart eftersom det visar användbara indikatorer när koden körs. I exemplet ovan, när du anger en brytpunkt, kommer den automatiskt att visa en röd prick till vänster om raden i marginalfältet. Alternativt, för att ställa in en brytpunkt, kan du helt enkelt klicka på marginalfältet till vänster om kodraden som du vill ha som brytpunkt.

Som standard är marginalindikatorfältet aktiverat och jag rekommenderar att du håller det så.

En av mina VBA -kurselever tyckte att dessa anpassningsalternativ var användbara och hon var färgblind. Med alternativen här kunde hon ställa in färgen och formaten som gjorde det enkelt för henne att arbeta med VBA.

Fliken Allmänt

Fliken Allmänt har många alternativ men du behöver inte ändra något av det.

Jag rekommenderar att du behåller alla alternativ som de är.

Ett viktigt alternativ att veta om på den här fliken är Felhantering.

Som standard är 'Break on Unhandled Errors' valt och jag rekommenderar att du håller det så.

Det här alternativet innebär att om din kod stöter på ett fel och du inte redan har hanterat det felet i koden, kommer den att gå sönder och sluta. Men om du har åtgärdat felet (till exempel genom att använda alternativet On Error Resume Next eller On Error Goto), kommer det inte att gå sönder (eftersom felen inte hanteras).

Dockningsflik

På den här fliken kan du ange vilka fönster du vill få dockad.

Dockning innebär att du kan fixa positionen för ett fönster (t.ex. projektutforskare eller fönstret Egenskaper) så att det inte flyter runt och du kan se alla olika fönster samtidigt.

Om du inte lägger till kommer du att kunna se ett fönster i taget i helskärmsläge och måste byta till det andra.

Jag rekommenderar att behålla standardinställningarna.

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave