Hur använder man Visual Basic for Application (VBA) i Excel?

Visual Basic for Application ( VBA ) är ett programmeringsspråk som låter dig utöka funktionaliteten i Excel och automatisera repetitiva uppgifter. Med VBA kan du skapa makron, formulär, anpassade funktioner och interaktiva applikationer. I den här artikeln kommer du att lära dig grunderna i VBA i Excel och hur du använder det för att utföra enkla eller komplexa operationer.

Hur får man åtkomst till VBA i Excel?

GetPaidStock.com 64886528e3bbe

För att komma åt VBA i Excel måste du aktivera fliken Utvecklare i menyfliksområdet. För att göra detta, följ dessa steg:

  • Klicka på Arkiv-knappen och sedan på Alternativ.
    tth img w10 app excel-fil
  • I fönstret Excel-alternativ klickar du på Anpassa menyfliksområdet.
    tth img w10 app excel fil personligt alternativ ribbon dev
  • Markera rutan Utvecklare i listan över huvudflikar och klicka sedan på OK.

Du kommer då att se fliken Utvecklare visas i menyfliksområdet. Den här fliken innehåller flera VBA-relaterade verktyg, som Visual Basic-knappen, knappen Spela in makro eller knappen Infoga kontroll.

tth img w10 app excel dev
tth img w10 app excel dev vba

Visual Basic-knappen öppnar Visual Basic Editor (VBE), där du skapar och redigerar VBA-kod. Knappen Spela in makro genererar automatiskt VBA-kod som återger de åtgärder du utför i programmet. Knappen Infoga kontroll låter dig lägga till interaktiva element i ditt kalkylblad, såsom knappar, kryssrutor eller rullgardinslistor.

Hur skriver man VBA-kod i Excel?

För att skriva VBA-kod i Excel måste du använda Visual Basic Editor (VBE). För att öppna den klickar du på Visual Basic-knappen på fliken Utvecklare i menyfliksområdet.

VBE består av flera fönster:

tth img w10 app excel dev vba 1 1
  • Projektfönstret visar den hierarkiska strukturen för objekt som innehåller VBA-kod. Till exempel, om du har en arbetsbok som heter MyWorkbook.xlsm med två ark som heter Sheet1 och Sheet2, kommer du att se objekten Sheet1 och Sheet2 samt ett objekt med namnet ThisWorkbook visas under MyWorkbook.xlsm.
    tth img w10 app excel dev vba projektfönster
  • Fönstret Egenskaper visar egenskaperna för det objekt som valts i projektfönstret. Om du till exempel väljer Sheet1-objektet kommer du att se dess egenskaper som dess namn (Name), dess färg (Tab.Color), dess kod (CodeName), etc.
    tth img w10 app excel dev vba egenskapsfönster
  • Kodfönstret visar VBA-koden som är associerad med objektet som valts i projektfönstret. Om du till exempel väljer Sheet1-objektet kommer du att se VBA-koden som körs när du interagerar med Sheet1-kalkylbladet.
    tth img w10 app excel dev vba fönsterkod
  • Fönstret Omedelbart visar VBA-kodresultat eller felmeddelanden. Om du till exempel använder MsgBox-funktionen för att visa ett meddelande för användaren, kommer du att se meddelandet visas i fönstret Omedelbart.
    tth img w10 app excel dev vba fönster

För att skriva VBA-kod måste du följa vissa syntaxregler:

  • Varje påstående måste avslutas med en nyrad eller ett kolon (:).
  • Nyckelord för VBA-språk måste skrivas med versaler eller gemener, men inte namnen på objekt, egenskaper eller metoder som är skiftlägeskänsliga.
  • Kommentarer måste föregås av apostrof (') eller Rem-tecken och måste skrivas på en separat rad eller efter ett påstående.
  • Teckensträngar måste omges av dubbla citattecken (“).
  • De aritmetiska operatorerna är +, -, *, / och ^ (potens).
  • De logiska operatorerna är And, Or, Not, Xor och Eqv.
  • Jämförelseoperatorerna är =, <>, <, <=, > och >=.
  • De fördefinierade konstanterna är True, False, Null, Empty, Nothing och vbNullString.

Här är ett exempel på VBA-kod som visar ett meddelande till användaren:

Sub Hello() ' Det här är en MsgBox-kommentar "Hej, jag är Bing!" ' Visar ett underordnat slutmeddelande 

Hur använder man Excel-kalkylbladsfunktioner i VBA?

Du kan använda de flesta Excel-kalkylbladsfunktioner i dina VBA-satser. För att göra detta måste du använda följande syntax:

Application.WorksheetFunction.FunctionName(argument1, argument2, ...)

Till exempel, om du vill använda SUM-funktionen för att beräkna summan av värdena i intervallet A1:A10, kan du skriva:

Sub Sum() Dim result As Double ' Deklarerar en variabel av typen Double result = Application.WorksheetFunction.Sum(Range("A1:A10")) ' Tilldelar resultatet av SUM-funktionen till variabeln MsgBox result ' Visar resultatet End Sub

Du kan även använda anpassade funktioner som du själv skapar i VBA. För att göra detta måste du använda följande syntax:

Funktion Funktionsnamn(argument1 Som Typ1, argument2 Som Typ2, ...) Som ReturnType ' Deklarationer och instruktioner Funktionsnamn = uttryck ' Tilldelar funktionen resultatet som ska returneras.

Om du till exempel vill skapa en funktion som beräknar kvadraten på ett tal kan du skriva:

Funktion Kvadrat(tal Som Dubbel) Som Dubbel ' Deklarerar en funktion som tar ett tal som argument och returnerar ett tal Kvadrat = tal * tal ' Tilldelar kvadraten av talet till funktionen Slutfunktion

Du kan sedan använda den här funktionen i dina VBA-satser eller i dina Excel-formler. Till exempel :

Sub Test() Dim x As Double ' Deklarerar en variabel av typen Double x = 5 ' Tilldelar värdet 5 till variabeln MsgBox Square(x) ' Visar kvadraten på x End Sub

Hur skapar man makron i Excel?

Ett makro är en uppsättning VBA-instruktioner som körs på en gång. Du kan skapa makron för att automatisera återkommande eller komplexa uppgifter i Excel. Det finns två sätt att skapa makron: genom att spela in dem eller genom att skriva dem.

Spela in ett makro

Att spela in ett makro innebär att du använder knappen Spela in makro på fliken Utvecklare i menyfliksområdet för att fånga åtgärder du utför i Excel och konvertera dem till VBA-kod. Detta är det enklaste och snabbaste sättet att skapa ett makro, men det kan producera dåligt optimerad eller redundant kod.

För att spela in ett makro, följ dessa steg:

  • Klicka på knappen Spela in makro på fliken Utvecklare i menyfliksområdet.
    tth img w10 app excel dev spara makro
  • I dialogrutan Spela in makro, ge ditt makro ett namn, välj ett kortkommando om du vill, välj en plats för att lagra ditt makro (aktiv arbetsbok, ny arbetsbok eller personlig arbetsbok) och skriv en beskrivning om du vill .
    tth img w10 app excel dev spara makro
  • Klicka på OK för att starta inspelningen.
  • Utför de åtgärder du vill automatisera i Excel. Om du till exempel vill skapa ett makro som formaterar en tabell, välj tabellen, stil den, sortera den i alfabetisk ordning osv.
  • Klicka på knappen Stoppa inspelning på fliken Utvecklare på menyfliksområdet för att avsluta inspelningen.

Du kan sedan köra ditt makro med din valda kortkommando, genom att klicka på Makron-knappen på fliken Utvecklare på menyfliksområdet, eller genom att använda Kör-knappen i VBE.

Skriv ett makro

Att skriva ett makro innebär att använda VBE för att direkt skriva in VBA-koden som motsvarar de åtgärder du vill automatisera. Detta är den mest flexibla och kraftfulla metoden för att skapa ett makro, men det kräver programmeringskunskaper.

För att skriva ett makro, följ dessa steg:

  • Öppna VBE genom att klicka på Visual Basic-knappen på fliken Utvecklare i menyfliksområdet.
    tth img w10 app excel dev vba
  • I projektfönstret väljer du objektet där du vill lagra ditt makro (aktiv arbetsbok, ny arbetsbok eller personlig arbetsbok).
  • I fönstret Kod skriver du VBA-koden som motsvarar de åtgärder du vill automatisera. Om du till exempel vill skapa ett makro som formaterar en tabell, skriv in följande kod:
Sub FormatTable() ' Väljer tabellen Range("A1:D10").Select ' Tillämpar en stil på tabellen Selection.Style = "Tabell 1" ' Sorterar tabellen alfabetiskt efter kolumn A ActiveWorkbook.Worksheets("Sheet1" ). Sort.SortFields.Clear ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("A2:A10") _ , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlWorksheetbook With Active.Worksheetbook With Active. ("Sheet1").Sortera .SetRange Range("A1:D10") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub

Du kan sedan köra ditt makro genom att använda knappen Kör i VBE eller genom att tilldela det en kortkommando eller kontroll.

tth img w10 app excel dev vba testkod

Vanliga frågor

Här är några vanliga frågor om att använda VBA i Excel:

Vad är VBA och varför använda det?

VBA är versionen av Visual Basic som levereras med Microsoft Office. Det är ett objektorienterat programmeringsspråk som använder syntax nära naturligt språk. VBA låter dig komma åt och manipulera Excels objekt, egenskaper och metoder med hjälp av kod. Du kan därför styra Excel på ett finare och kraftfullare sätt än genom det grafiska gränssnittet.

Att använda VBA har flera fördelar:

  • Du kan automatisera repetitiva eller tråkiga uppgifter, som att rensa data, formatera tabeller, skapa diagram och mer.
  • Du kan anpassa Excel efter dina specifika behov, lägga till funktioner som inte finns i programvaran eller ändra dess beteende.
  • Du kan interagera med användaren med hjälp av dialoger, formulär eller anpassade meddelanden.
  • Du kan integrera Excel med andra Office-applikationer eller externa datakällor, som Outlook, Word, Access, SQL Server, etc.

Hur felsöker jag VBA-kod i Excel?

För att felsöka VBA-kod i Excel kan du använda VBE-verktyg, som brytpunkter, steg, bevakningsfönster eller språkfönster. Dessa verktyg låter dig kontrollera kodexekveringen, kontrollera variabelvärden och upptäcka fel.

Hur skyddar man VBA-kod i Excel?

För att skydda VBA-kod i Excel kan du låsa VBA-projektet med ett lösenord. För att göra detta, följ dessa steg:

  • Öppna VBE genom att klicka på Visual Basic-knappen på fliken Utvecklare i menyfliksområdet.
  • Högerklicka på VBA-projektets namn i projektfönstret och välj VBA-projektegenskaper.
  • Klicka på fliken Skydd i dialogrutan VBA-projektegenskaper.
  • Markera rutan Lås projekt för visning och skriv in ett lösenord och bekräfta det.
  • Klicka på OK för att stänga dialogrutan.
  • Spara och stäng arbetsboken.

Hur kör man ett makro när man öppnar eller stänger en arbetsbok?

För att köra ett makro när du öppnar eller stänger en arbetsbok måste du använda händelserna Workbook_Open eller Workbook_BeforeClose. För att göra detta, följ dessa steg:

  • Öppna VBE genom att klicka på Visual Basic-knappen på fliken Utvecklare i menyfliksområdet.
  • I projektfönstret väljer du ThisWorkbook-objektet under arbetsbokens namn.
  • I fönstret Kod väljer du Arbetsbok från rullgardinsmenyn Objekt uppe till vänster.
  • Välj Öppna eller FöreStäng från rullgardinsmenyn Procedur uppe till höger.
  • Skriv in VBA-koden som anropar makrot du vill köra. Till exempel :
Private Sub Workbook_Open() ' Kör Hello-makrot när arbetsboken öppnas Hello End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) ' Kör AuRevoir-makrot när arbetsboken stänger AuRevoir End Sub

Hur skapar man ett formulär i Excel med VBA?

För att skapa ett formulär i Excel med VBA måste du använda VBE:s formulärdesigner. För att göra detta, följ dessa steg:

  • Öppna VBE genom att klicka på Visual Basic-knappen på fliken Utvecklare i menyfliksområdet.
  • I projektfönstret högerklickar du på VBA-projektets namn och väljer Infoga och sedan UserForm.
  • Ett nytt UserForm-fönster öppnas. Du kan lägga till kontroller som etiketter, textrutor, knappar etc. till den. genom att dra dem från verktygslådan.
  • Du kan ändra egenskaperna för kontroller i fönstret Egenskaper eller skriva VBA-kod för att hantera deras händelser i kodfönstret.
  • För att visa formuläret kan du använda metoden Visa. Till exempel :
Sub ShowForm() ' Visar formen UserForm1 UserForm1.Show End Sub

Hur skapar man en anpassad funktion i Excel med VBA?

För att skapa en anpassad funktion i Excel med VBA måste du använda följande syntax:

Funktion Funktionsnamn(argument1 Som Typ1, argument2 Som Typ2, ...) Som ReturnType ' Deklarationer och instruktioner Funktionsnamn = uttryck ' Tilldelar funktionen resultatet som ska returneras.

Om du till exempel vill skapa en funktion som beräknar kvadraten på ett tal kan du skriva:

Funktion Kvadrat(tal Som Dubbel) Som Dubbel ' Deklarerar en funktion som tar ett tal som argument och returnerar ett tal Kvadrat = tal * tal ' Tilldelar kvadraten av talet till funktionen Slutfunktion

Du kan sedan använda den här funktionen i dina VBA-satser eller i dina Excel-formler. Till exempel :

Sub Test() Dim x As Double ' Deklarerar en variabel av typen Double x = 5 ' Tilldelar värdet 5 till variabeln MsgBox Square(x) ' Visar kvadraten på x End Sub

Du kan även använda anpassade funktioner som du själv skapar i VBA. För att göra detta måste du använda följande syntax:

Funktion Funktionsnamn(argument1 Som Typ1, argument2 Som Typ2, ...) Som ReturnType ' Deklarationer och instruktioner Funktionsnamn = uttryck ' Tilldelar funktionen resultatet som ska returneras.

Om du till exempel vill skapa en funktion som beräknar kvadraten på ett tal kan du skriva:

Funktion Kvadrat(tal Som Dubbel) Som Dubbel ' Deklarerar en funktion som tar ett tal som argument och returnerar ett tal Kvadrat = tal * tal ' Tilldelar kvadraten av talet till funktionen Slutfunktion

Du kan sedan använda den här funktionen i dina VBA-satser eller i dina Excel-formler. Till exempel :

Sub Test() Dim x As Double ' Deklarerar en variabel av typen Double x = 5 ' Tilldelar värdet 5 till variabeln MsgBox Square(x) ' Visar kvadraten på x End Sub

Eller

=Square(A1) ' Beräknar kvadraten på värdet på cell A1

Slutsats

Du lärde dig i den här artikeln hur du använder Visual Basic for Application (VBA) i Excel. Du har sett vad VBA är och varför man använder det, hur man får åtkomst till VBA i Excel, hur man skriver VBA-kod i Excel, hur man använder Excel-kalkylbladsfunktioner i VBA, hur man skapar makron i Excel med VBA, hur man skapar formulär i Excel med VBA och hur man skapar anpassade funktioner i Excel med VBA. Bland de anpassade funktioner du kan skapa med VBA är att göra en subtraktion i Excel . Du kan nu utnyttja programmeringskraften i VBA för att anpassa och automatisera Excel efter behov.

Föregående artikel Hur man lär sig Python på nybörjarnivå?
Nästa artikel Hur ansluter du till din Bouygues Telecom-brevlåda?