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

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

Hur får jag tillgång 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ölj dessa steg:

  • Klicka på knappen Arkiv 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 menyfliksutveckling
  • I listan över huvudflikar markerar du rutan Utvecklare och klickar sedan på OK.

Du kommer då att se fliken Utvecklare visas i menyfliksområdet. Den här fliken innehåller flera verktyg relaterade till VBA, till exempel Visual Basic-knappen, knappen Spela in makro och 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 ändrar VBA-kod. Knappen Spela in makro genererar automatiskt VBA-kod som replikerar de åtgärder du utför i programmet. Med knappen Infoga kontroll kan du lägga till interaktiva element i ditt kalkylblad, till exempel knappar, kryssrutor eller listrutor.

Hur skriver jag 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. Om du till exempel har en arbetsbok med namnet MinArbetsbok.xlsm med två ark med namnet Blad1 och Blad2, kommer du att se objekten Blad1 och Blad2 visas under MinArbetsbok.xlsm, samt ett objekt med namnet DennaArbetsbok.
    tth img w10 app excel dev vba fenetre projekt
  • Egenskapsfönstret visar egenskaperna för det objekt som valts i projektfönstret. Om du till exempel väljer Sheet1-objektet ser du dess egenskaper, såsom dess namn (Name), dess färg (Tab.Color), dess kod (CodeName) etc.
    tth img w10 app excel dev vba fönsteregenskap
  • Kodfönstret visar VBA-koden som är associerad med det objekt som valts i projektfönstret. Om du till exempel väljer Sheet1-objektet ser du VBA-koden som körs när du interagerar med Sheet1-arket.
    tth img w10 app excel dev vba fönsterkod
  • I direktfönstret visas resultaten av VBA-koden eller felmeddelanden. Om du till exempel använder funktionen MsgBox för att visa ett meddelande till användaren kommer du att se meddelandet visas i direktfönstret.
    tth img w10 app excel dev vba fenetre

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

  • Varje instruktion måste avslutas med en radbrytning eller ett kolon (:).
  • VBA-nyckelord måste skrivas med versaler eller gemener, men inte namnen på objekt, egenskaper eller metoder, vilka är skiftlägeskänsliga.
  • Kommentarer måste föregås av apostroftecknet (') eller Rem och måste skrivas på en separat rad eller efter en instruktion.
  • Teckensträngar måste omges av dubbla citattecken (").
  • De aritmetiska operatorerna är +, -, *, / och ^ (potens).
  • De logiska operatorerna är Och, Eller, Inte, Xeller och ekv.
  • 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() ' Detta är en kommentar MsgBox "Hej, jag är Bing!" ' Visar ett meddelande Avsluta sub

Hur använder man Excel-kalkylbladsfunktioner i VBA?

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

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

Om du till exempel 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 också använda anpassade funktioner som du skapar själv 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 resultatet som ska returneras till funktionen End Function

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

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

Du kan sedan använda den här funktionen i dina VBA-instruktioner 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 av x End Sub

Hur skapar jag makron i Excel?

Ett makro är en uppsättning VBA-instruktioner som körs 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 man använder knappen Spela in makro på fliken Utvecklare i menyfliksområdet för att registrera de åtgärder man 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.

Så här spelar du in ett makro:

  • 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 ger du makrot ett namn, väljer ett kortkommando om du vill, väljer en plats för att lagra makrot (aktiv arbetsbok, ny arbetsbok eller personlig arbetsbok) och skriver 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, markera tabellen, tillämpa ett format på den, sortera den alfabetiskt osv.
  • Klicka på knappen Stoppa inspelning på fliken Utvecklare i menyfliksområdet för att avsluta inspelningen.

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

Skriv ett makro

Att skriva ett makro innebär att man använder VBE för att direkt skriva in VBA-koden som motsvarar de åtgärder man vill automatisera. Det ä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 markerar du det objekt där du vill lagra makrot (aktiv arbetsbok, ny arbetsbok eller personlig arbetsbok).
  • I kodfönstret skriver du in VBA-koden som motsvarar de åtgärder du vill automatisera. Om du till exempel vill skapa ett makro som formaterar en tabell skriver du 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:=xlSortNormal With ActiveWorkbook.Worksheets("Sheet1").Sort .SetRange Range("A1:D10") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub

Du kan sedan köra ditt makro med hjälp av Kör-knappen 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 ska man använda det?

VBA är den version av Visual Basic som ingår i Microsoft Office. Det är ett objektorienterat programmeringsspråk som använder en syntax som liknar naturligt språk. VBA låter dig komma åt och manipulera Excels objekt, egenskaper och metoder med hjälp av kod. Detta ger dig mer exakt och kraftfull kontroll över Excel än genom det grafiska gränssnittet.

Att använda VBA erbjuder flera fördelar:

  • Du kan automatisera repetitiva eller tråkiga uppgifter, som datarensning, tabellformatering, diagramskapande etc.
  • 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 dialogrutor, formulär eller anpassade meddelanden.
  • Du kan integrera Excel med andra Office-program eller externa datakällor, till exempel Outlook, Word, Access, SQL Server etc.

Hur felsöker man VBA-kod i Excel?

För att felsöka VBA-kod i Excel kan du använda VBE-verktyg som brytpunkter, stegning, övervakningsfönstret eller språkinställningarna. Dessa verktyg låter dig styra kodkörning, 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ö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 VBA-projektegenskaper.
  • I dialogrutan VBA-projektegenskaper klickar du på fliken Skydd.
  • Markera rutan för att låsa projektet för visning och ange ett lösenord. Bekräfta det sedan.
  • Klicka på OK för att stänga dialogrutan.
  • Spara och stäng arbetsboken.

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

För att köra ett makro när en arbetsbok öppnas eller stängs måste du använda händelserna Workbook_Open eller Workbook_BeforeClose. 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 kodfönstret väljer du Arbetsbok från listrutan Objekt i det övre vänstra hörnet.
  • Välj Öppna eller FöreStängning från rullgardinsmenyn Procedur i det övre högra hörnet.
  • Skriv VBA-koden som anropar makrot du vill köra. Till exempel:
Private Sub Workbook_Open() ' Kör makrot Bonjour när arbetsboken öppnas Bonjour End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) ' Kör makrot AuRevoir när arbetsboken stängs AuRevoir End Sub

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

För att skapa ett formulär i Excel med VBA måste du använda VBA Form Designer. 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 Användarformulär.
  • Ett nytt UserForm-fönster öppnas. Du kan lägga till kontroller som etiketter, textrutor, knappar etc. genom att dra dem från verktygslådan.
  • Du kan ändra egenskaperna för kontrollerna i egenskapsfönstret 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 formuläret UserForm1 UserForm1.Show End Sub

Hur skapar man en anpassad funktion i Excel med hjälp av VBA?

För att skapa en anpassad funktion i Excel med hjälp av 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 resultatet som ska returneras till funktionen End Function

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

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

Du kan sedan använda den här funktionen i dina VBA-instruktioner 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 av x End Sub

Du kan också använda anpassade funktioner som du skapar själv 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 resultatet som ska returneras till funktionen End Function

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

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

Du kan sedan använda den här funktionen i dina VBA-instruktioner 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 av x End Sub

Eller

=KVADRAT(A1) ' Beräknar kvadraten av värdet i cell A1

Slutsats

I den här artikeln lärde du dig hur du använder Visual Basic for Applications (VBA) i Excel. Du såg vad VBA är och varför du ska använda det, hur du kommer åt VBA i Excel, hur du skriver VBA-kod i Excel, hur du använder Excel-kalkylbladsfunktioner i VBA, hur du skapar makron i Excel med VBA, hur du skapar formulär i Excel med VBA och hur du skapar anpassade funktioner i Excel med VBA. Bland de anpassade funktioner du kan skapa med VBA finns funktionen för att utföra subtraktion i Excel . Du kan nu utnyttja programmeringskraften i VBA för att anpassa och automatisera Excel efter dina behov.

Föregående artikel: Hur man lär sig Python på nybörjarnivå?
Nästa artikel: Hur ansluter jag till mitt Bouygues Telecom-e-postkonto?