VBA Handledning
Komma igång med VBA
Sök…
Anmärkningar
Det här avsnittet ger en översikt över vad vba är och varför en utvecklare kanske vill använda den.
Det bör också nämna alla stora ämnen inom vba och koppla till relaterade ämnen. Eftersom dokumentationen för vba är ny kan du behöva skapa initialversioner av relaterade ämnen.
versioner
Version | Office-versioner | Utgivningsdatumanteckningar | Utgivningsdatum |
---|---|---|---|
Vba6 | ? - 2007 | [Någon gång efter] [1] | 1992/06/30 |
Vba7 | 2010 - 2016 | [Blog.techkit.com] [2] | 2010-04-15 |
VBA för Mac | 2004, 2011 - 2016 | 2004-05-11 |
Åtkomst till Visual Basic Editor i Microsoft Office
Du kan öppna VB-redigeraren i något av Microsoft Office-applikationerna genom att trycka på Alt + F11 eller gå till utvecklarfliken och klicka på "Visual Basic" -knappen. Om du inte ser fliken Utvecklare i bandet, kontrollera om detta är aktiverat.
Som standard är fliken Utvecklare inaktiverad. För att aktivera fliken Utvecklare går du till Arkiv -> Alternativ, välj Anpassa band i listan till vänster. Till höger "Anpassa bandet" trevisningen, hitta utvecklarens trädobjekt och ställ in kryssrutan för utvecklarens kryssruta till markerad. Klicka på Ok för att stänga dialogrutan Alternativ.
Fliken Utvecklare är nu synlig i bandet där du kan klicka på "Visual Basic" för att öppna Visual Basic Editor. Alternativt kan du klicka på "Visa kod" för att direkt se kodrutan för det nuvarande aktiva elementet, t.ex. WorkSheet, Chart, Shape.
Du kan använda VBA för att automatisera nästan alla åtgärder som kan utföras interaktivt (manuellt) och också tillhandahålla funktionalitet som inte är tillgänglig i Microsoft Office. VBA kan skapa ett dokument, lägga till text i det, formatera det, redigera det och spara det, allt utan mänsklig inblandning.
Första modulen och Hello World
För att starta kodningen i första hand måste du högerklicka på ditt VBA-projekt i vänsterlistan och lägga till en ny modul. Din första Hello-World- kod kan se ut så här:
Sub HelloWorld()
MsgBox "Hello, World!"
End Sub
För att testa det, tryck på Play- knappen i din verktygsfält eller helt enkelt tryck på F5- tangenten. Grattis! Du har byggt din första egna VBA-modul.
felsökning
Felsökning är ett mycket kraftfullt sätt att titta närmare på och fixa felaktig (eller ej fungerande) kod.
Kör kod steg för steg
Det första du behöver göra under felsökning är att stoppa koden på specifika platser och sedan köra den rad för rad för att se om det händer vad som förväntas.
- Breakpoint ( F9 , Debug - Toggle breakpoint): Du kan lägga till en breakpoint till vilken exekverad rad som helst (t.ex. inte till deklarationer), när exekveringen når den punkten stannar den och ger kontroll till användaren.
- Du kan också lägga till nyckelordet
Stop
i en tom rad för att stoppa koden på den platsen under körning. Detta är användbart om till exempel före deklarationsrader som du inte kan lägga till en brytpunkt med F9 - Steg in ( F8 , Felsökning - Steg in): kör endast en kodrad, om det är ett samtal från en användardefinierad sub / funktion, så körs den rad för rad.
- Steg över ( Shift + F8 , Debug - Step over): kör en rad kod, skriver inte in användardefinierade sub / funktioner.
- Steg ut ( Ctrl + Shift + F8 , Debug - Step out): Avsluta aktuell sub / funktion (kör kod tills dess slut).
- Kör till markören ( Ctrl + F8 , Debug - Kör till markören): kör kod tills du når raden med markören.
- Du kan använda
Debug.Print
att skriva ut linjer till det omedelbara fönstret under körning. Du kan också användaDebug.?
som en genväg förDebug.Print
Klockor fönster
Att köra kod rad för rad är bara det första steget, vi behöver veta mer detaljer och ett verktyg för det är klockfönstret (Visa - Klockfönster), här kan du se värden på definierade uttryck. För att lägga till en variabel i klockfönstret, antingen:
- Högerklicka på den och välj sedan "Lägg till klocka".
- Högerklicka i klockfönstret och välj "Lägg till klocka".
- Gå till Debug - Lägg till klocka.
När du lägger till ett nytt uttryck kan du välja om du bara vill se det värde, eller också köra exekvering av kod när det är sant eller när dess värde förändras.
Omedelbart fönster
Det omedelbara fönstret låter dig köra godtycklig kod eller skriva ut objekt genom att föregå dem antingen med sökordet Print
eller med ett enda frågetecken " ?
"
Några exempel:
-
? ActiveSheet.Name
- returnerar namnet på det aktiva arket -
Print ActiveSheet.Name
- returnerar namnet på det aktiva arket -
? foo
- returnerar värdet påfoo
* -
x = 10
sätterx
till 10 *
* Att få / ställa in värden för variabler via det omedelbara fönstret kan endast göras under körning
Felsökning av bästa praxis
När din kod inte fungerar som förväntat, bör du först läsa den igen noggrant och leta efter misstag.
Om det inte hjälper, börja felsöka det; för korta procedurer kan det vara effektivt att bara köra den rad för rad, för längre måste du antagligen ställa in brytpunkter eller brytningar på betraktade uttryck. Målet här är att hitta raden som inte fungerar som förväntat.
När du har en rad som ger fel resultat, men orsaken är ännu inte klar, försök att förenkla uttryck, eller ersätta variabler med konstanter, som kan hjälpa dig att förstå om variabelns värde är fel.
Om du fortfarande inte kan lösa det och be om hjälp:
- Inkludera en så liten del av din kod som möjligt för att förstå ditt problem
- Om problemet inte är relaterat till värdet på variabler, byt ut dem med konstanter. (så istället för
Sheets(a*b*c+d^2).Range(addressOfRange)
skrivSheets(4).Range("A2")
) - Beskriv vilken linje som ger fel beteende och vad det är (fel, fel resultat ...)