Visual Basic for Applications ( VBA ) er et programmeringssprog , der giver dig mulighed for at udvide Excels funktionalitet og automatisere gentagne opgaver. Med VBA kan du oprette makroer, formularer, brugerdefinerede funktioner og interaktive applikationer. I denne artikel lærer du det grundlæggende i VBA i Excel, og hvordan du bruger det til at udføre simple eller komplekse operationer.
Hvordan får jeg adgang til VBA i Excel?

For at få adgang til VBA i Excel skal du aktivere fanen Udvikler i båndet. Følg disse trin for at gøre dette:
- Klik på knappen Filer, og klik derefter på Indstillinger.

- I vinduet Excel-indstillinger skal du klikke på Tilpas båndet.

- Markér feltet Udvikler på listen over hovedfaner, og klik derefter på OK.
Du vil derefter se fanen Udvikler vises i båndet. Denne fane indeholder adskillige værktøjer relateret til VBA, såsom Visual Basic-knappen, knappen Optag makro og knappen Indsæt kontrol.


Visual Basic-knappen åbner Visual Basic Editor (VBE), hvor du opretter og redigerer VBA-kode. Knappen Optag makro genererer automatisk VBA-kode, der replikerer de handlinger, du udfører i applikationen. Knappen Indsæt kontrolelement giver dig mulighed for at tilføje interaktive elementer til dit regneark, f.eks. knapper, afkrydsningsfelter eller rullelister.
Hvordan skriver jeg VBA-kode i Excel?
For at skrive VBA-kode i Excel skal du bruge Visual Basic Editor (VBE). For at åbne den skal du klikke på Visual Basic-knappen på fanen Udvikler på båndet.
VBE'en består af flere vinduer:

- Projektvinduet viser den hierarkiske struktur af objekter, der indeholder VBA-kode. Hvis du for eksempel har en projektmappe med navnet MyWorkbook.xlsm med to ark med navnet Sheet1 og Sheet2, vil du se objekterne Sheet1 og Sheet2 vises under MyWorkbook.xlsm, samt et objekt med navnet ThisWorkbook.

- Vinduet Egenskaber viser egenskaberne for det objekt, der er valgt i projektvinduet. Hvis du f.eks. vælger Sheet1-objektet, vil du se dets egenskaber, såsom dets navn (Name), dets farve (Tab.Color), dets kode (CodeName) osv.

- Kodevinduet viser den VBA-kode, der er knyttet til det objekt, der er valgt i projektvinduet. Hvis du f.eks. vælger Ark1-objektet, vil du se den VBA-kode, der kører, når du interagerer med Ark1-regnearket.

- Vinduet "Immediate" viser resultaterne af VBA-koden eller fejlmeddelelserne. Hvis du f.eks. bruger funktionen MsgBox til at vise en besked til brugeren, vil du se beskeden i vinduet "Immediate".

For at skrive VBA-kode skal du følge visse syntaksregler:
- Hver instruktion skal afsluttes med et linjeskift eller et kolontegn (:).
- VBA-nøgleord skal skrives med store eller små bogstaver, men ikke navnene på objekter, egenskaber eller metoder, da der skelnes mellem store og små bogstaver.
- Kommentarer skal efterfølges af apostroftegnet (') eller Rem og skal skrives på en separat linje eller efter en instruktion.
- Tegnstrenge skal omsluttes af dobbelte anførselstegn (").
- De aritmetiske operatorer er +, -, *, / og ^ (potens).
- De logiske operatorer er Og, Eller, Ikke, Xeller og Ligning.
- Sammenligningsoperatorerne er =, <>, <, <=, > og >=.
- De foruddefinerede konstanter er True, False, Null, Empty, Nothing og vbNullString.
Her er et eksempel på VBA-kode, der viser en besked til brugeren:
Sub Hello() ' Dette er en kommentar MsgBox "Hej, jeg er Bing!" ' Viser en besked End Sub
Hvordan bruger man Excel-regnearksfunktioner i VBA?
Du kan bruge de fleste Excel-regnearksfunktioner i dine VBA-instruktioner. For at gøre dette skal du bruge følgende syntaks:
Application.WorksheetFunction.FunctionName(argument1, argument2, ...)
Hvis du for eksempel vil bruge SUM-funktionen til at beregne summen af værdierne i området A1:A10, kan du skrive:
Sub Sum() Dim result As Double ' Deklarerer en variabel af typen Double result = Application.WorksheetFunction.Sum(Range("A1:A10")) ' Tildeler resultatet af SUM-funktionen til variablen MsgBox result ' Viser resultatet End Sub
Du kan også bruge brugerdefinerede funktioner, som du selv opretter i VBA. For at gøre dette skal du bruge følgende syntaks:
Funktion Funktionsnavn(argument1 Som Type1, argument2 Som Type2, ...) Som ReturnType ' Deklarationer og instruktioner Funktionsnavn = udtryk ' Tildeler det resultat, der skal returneres, til funktionen End Function
Hvis du for eksempel vil oprette en funktion, der beregner kvadratet af et tal, kan du skrive:
Funktion Kvadrat(tal Som Dobbelt) Som Dobbelt ' Deklarerer en funktion, der tager et tal som argument og returnerer et tal Kvadrat = tal * tal ' Tildeler kvadratet af tallet til funktionen End Function
Du kan derefter bruge denne funktion i dine VBA-instruktioner eller i dine Excel-formler. For eksempel:
Sub Test() Dim x As Double ' Deklarerer en variabel af typen Double x = 5 ' Tildeler værdien 5 til variablen MsgBox Square(x) ' Viser kvadratet af x End Sub
Hvordan opretter jeg makroer i Excel?
En makro er et sæt VBA-instruktioner, der udføres én gang. Du kan oprette makroer for at automatisere tilbagevendende eller komplekse opgaver i Excel. Der er to måder at oprette makroer på: ved at optage dem eller ved at skrive dem.
Optag en makro
Optagelse af en makro indebærer at bruge knappen Optag makro på fanen Udvikler i båndet til at registrere de handlinger, du udfører i Excel, og konvertere dem til VBA-kode. Dette er den enkleste og hurtigste måde at oprette en makro på, men det kan producere dårligt optimeret eller overflødig kode.
Følg disse trin for at optage en makro:
- Klik på knappen Optag makro under fanen Udvikler på båndet.

- I dialogboksen Optag makro skal du give din makro et navn, vælge en tastaturgenvej, hvis du ønsker det, vælge en placering til at gemme din makro (aktiv projektmappe, ny projektmappe eller personlig projektmappe) og skrive en beskrivelse, hvis du ønsker det.

- Klik på OK for at starte optagelsen.
- Udfør de handlinger, du vil automatisere i Excel. Hvis du f.eks. vil oprette en makro, der formaterer en tabel, skal du markere tabellen, anvende en typografi på den, sortere den alfabetisk osv.
- Klik på knappen Stop optagelse under fanen Udvikler på båndet for at afslutte optagelsen.
Du kan derefter køre din makro ved hjælp af din valgte tastaturgenvej, ved at klikke på knappen Makroer i fanen Udvikler på båndet eller ved at bruge knappen Kør i VBE.
Skriv en makro
At skrive en makro indebærer at bruge VBE til direkte at skrive den VBA-kode, der svarer til de handlinger, du vil automatisere. Det er den mest fleksible og effektive metode til at oprette en makro, men det kræver programmeringskendskab.
For at skrive en makro skal du følge disse trin:
- Åbn VBE ved at klikke på Visual Basic-knappen under fanen Udvikler på båndet.

- I projektvinduet skal du vælge det objekt, hvor du vil gemme din makro (aktiv projektmappe, ny projektmappe eller personlig projektmappe).
- I kodevinduet skal du skrive den VBA-kode, der svarer til de handlinger, du vil automatisere. Hvis du f.eks. vil oprette en makro, der formaterer en tabel, skal du skrive følgende kode:
Sub FormatTable() ' Vælger tabellen Range("A1:D10").Select ' Anvender en typografi på tabellen Selection.Style = "Table 1" ' Sorterer tabellen alfabetisk efter kolonne 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 derefter køre din makro ved hjælp af knappen Kør i VBE eller ved at tildele den en tastaturgenvej eller et kontrolelement.

Ofte stillede spørgsmål
Her er nogle ofte stillede spørgsmål om brugen af VBA i Excel:
Hvad er VBA, og hvorfor skal man bruge det?
VBA er den version af Visual Basic, der følger med Microsoft Office. Det er et objektorienteret programmeringssprog , der bruger en syntaks, der er tæt på naturligt sprog. VBA giver dig adgang til og manipulere Excels objekter, egenskaber og metoder ved hjælp af kode. Dette giver dig mere præcis og effektiv kontrol over Excel end gennem den grafiske brugerflade.
Brug af VBA giver flere fordele:
- Du kan automatisere gentagne eller kedelige opgaver, såsom dataoprydning, tabelformatering, diagramoprettelse osv.
- Du kan tilpasse Excel, så det passer til dine specifikke behov, tilføje funktioner, der ikke findes i softwaren, eller ændre dens funktionsmåde.
- Du kan interagere med brugeren ved hjælp af dialogbokse, formularer eller brugerdefinerede beskeder.
- Du kan integrere Excel med andre Office-programmer eller eksterne datakilder, såsom Outlook, Word, Access, SQL Server osv.
Hvordan fejlsøger man VBA-kode i Excel?
For at foretage fejlfinding af VBA-kode i Excel kan du bruge VBE-værktøjer som f.eks. breakpoints, stepping, overvågningsvinduet eller vinduet Locales. Disse værktøjer giver dig mulighed for at kontrollere kodeudførelse, kontrollere variabelværdier og finde fejl.
Hvordan beskytter man VBA-kode i Excel?
For at beskytte VBA-kode i Excel kan du låse VBA-projektet med en adgangskode. Følg disse trin for at gøre dette:
- Åbn VBE ved at klikke på Visual Basic-knappen under fanen Udvikler på båndet.
- I projektvinduet skal du højreklikke på VBA-projektnavnet og vælge VBA-projektegenskaber.
- Klik på fanen Beskyttelse i dialogboksen VBA-projektegenskaber.
- Markér feltet for at låse projektet til visning, indtast en adgangskode, og bekræft den derefter.
- Klik på OK for at lukke dialogboksen.
- Gem og luk projektmappen.
Hvordan kører jeg en makro, når jeg åbner eller lukker en projektmappe?
For at køre en makro, når en projektmappe åbnes eller lukkes, skal du bruge begivenhederne Workbook_Open eller Workbook_BeforeClose. Følg disse trin for at gøre dette:
- Åbn VBE ved at klikke på Visual Basic-knappen under fanen Udvikler på båndet.
- I projektvinduet skal du vælge ThisWorkbook-objektet under projektmappens navn.
- I kodevinduet skal du vælge Projektmappe på rullelisten Objekt i øverste venstre hjørne.
- Vælg Åbn eller FørLukning på rullelisten Procedure i øverste højre hjørne.
- Skriv den VBA-kode, der kalder den makro, du vil køre. For eksempel:
Private Sub Workbook_Open() ' Udfører makroen Bonjour, når projektmappen åbnes Bonjour End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) ' Udfører makroen AuRevoir, når projektmappen lukkes AuRevoir End Sub
Hvordan opretter man en formular i Excel ved hjælp af VBA?
For at oprette en formular i Excel ved hjælp af VBA, skal du bruge VBA Form Designer. Følg disse trin for at gøre dette:
- Åbn VBE ved at klikke på Visual Basic-knappen under fanen Udvikler på båndet.
- I projektvinduet skal du højreklikke på VBA-projektnavnet og vælge Indsæt og derefter Brugerformular.
- Et nyt UserForm-vindue åbnes. Du kan tilføje kontrolelementer såsom etiketter, tekstbokse, knapper osv. ved at trække dem fra værktøjskassen.
- Du kan ændre egenskaberne for kontrolelementerne i vinduet Egenskaber eller skrive VBA-kode til at håndtere deres hændelser i kodevinduet.
- For at vise formularen kan du bruge Vis-metoden. For eksempel:
Sub ShowForm() ' Viser formularen BrugerFormular1 BrugerFormular1.Show Slut Sub
Hvordan opretter man en brugerdefineret funktion i Excel ved hjælp af VBA?
For at oprette en brugerdefineret funktion i Excel ved hjælp af VBA, skal du bruge følgende syntaks:
Funktion Funktionsnavn(argument1 Som Type1, argument2 Som Type2, ...) Som ReturnType ' Deklarationer og instruktioner Funktionsnavn = udtryk ' Tildeler det resultat, der skal returneres, til funktionen End Function
Hvis du for eksempel vil oprette en funktion, der beregner kvadratet af et tal, kan du skrive:
Funktion Kvadrat(tal Som Dobbelt) Som Dobbelt ' Deklarerer en funktion, der tager et tal som argument og returnerer et tal Kvadrat = tal * tal ' Tildeler kvadratet af tallet til funktionen End Function
Du kan derefter bruge denne funktion i dine VBA-instruktioner eller i dine Excel-formler. For eksempel:
Sub Test() Dim x As Double ' Deklarerer en variabel af typen Double x = 5 ' Tildeler værdien 5 til variablen MsgBox Square(x) ' Viser kvadratet af x End Sub
Du kan også bruge brugerdefinerede funktioner, som du selv opretter i VBA. For at gøre dette skal du bruge følgende syntaks:
Funktion Funktionsnavn(argument1 Som Type1, argument2 Som Type2, ...) Som ReturnType ' Deklarationer og instruktioner Funktionsnavn = udtryk ' Tildeler det resultat, der skal returneres, til funktionen End Function
Hvis du for eksempel vil oprette en funktion, der beregner kvadratet af et tal, kan du skrive:
Funktion Kvadrat(tal Som Dobbelt) Som Dobbelt ' Deklarerer en funktion, der tager et tal som argument og returnerer et tal Kvadrat = tal * tal ' Tildeler kvadratet af tallet til funktionen End Function
Du kan derefter bruge denne funktion i dine VBA-instruktioner eller i dine Excel-formler. For eksempel:
Sub Test() Dim x As Double ' Deklarerer en variabel af typen Double x = 5 ' Tildeler værdien 5 til variablen MsgBox Square(x) ' Viser kvadratet af x End Sub
Eller
=KVADRAT(A1) ' Beregner kvadratet af værdien i celle A1
Konklusion
I denne artikel lærte du, hvordan du bruger Visual Basic for Applications (VBA) i Excel. Du så, hvad VBA er, og hvorfor du skal bruge det, hvordan du får adgang til VBA i Excel, hvordan du skriver VBA-kode i Excel, hvordan du bruger Excel-regnearksfunktioner i VBA, hvordan du opretter makroer i Excel med VBA, hvordan du opretter formularer i Excel med VBA, og hvordan du opretter brugerdefinerede funktioner i Excel med VBA. Blandt de brugerdefinerede funktioner , du kan oprette med VBA, er funktionen til at udføre subtraktion i Excel . Du kan nu udnytte VBAs programmeringskraft til at tilpasse og automatisere Excel, så det passer til dine behov.
![[GetPaidStock.com]-648864a469b9a](https://tt-hardware.com/wp-content/uploads/2023/06/GetPaidStock.com-648864a469b9a-696x400.jpg)


