Hvordan bruger man Visual Basic for Application (VBA) i Excel?

Visual Basic for Application ( VBA ) er et programmeringssprog , der giver dig mulighed for at udvide funktionaliteten i Excel 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 man adgang til VBA i Excel?

GetPaidStock.com 64886528e3bbe

For at få adgang til VBA i Excel skal du aktivere fanen Udvikler på båndet. For at gøre dette skal du følge disse trin:

  • Klik på knappen Filer og derefter på Indstillinger.
    tth img w10 app excel-fil
  • Klik på Tilpas bånd i vinduet Excel-indstillinger.
    tth img w10 app excel fil personlig indstilling bånd dev
  • På listen over hovedfaner skal du markere feltet Udvikler og derefter klikke på OK.

Du vil derefter se fanen Udvikler vises på båndet. Denne fane indeholder flere VBA-relaterede værktøjer, såsom knappen Visual Basic, knappen Optag makro eller knappen Indsæt kontrol.

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

Visual Basic-knappen åbner Visual Basic Editor (VBE), hvor du opretter og redigerer VBA-kode. Knappen Optag makro genererer automatisk VBA-kode, der gengiver de handlinger, du udfører i programmet. Knappen Indsæt kontrol giver dig mulighed for at tilføje interaktive elementer til dit regneark, såsom knapper, afkrydsningsfelter eller rullelister.

Hvordan skriver man 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 består af flere vinduer:

tth img w10 app excel dev vba 1 1
  • Projektvinduet viser den hierarkiske struktur af objekter, der indeholder VBA-kode. For eksempel, hvis du har en projektmappe ved navn MyWorkbook.xlsm med to ark med navnet Ark1 og Ark2, vil du se objekterne Ark1 og Ark2 samt et objekt med navnet ThisWorkbook vises under MyWorkbook.xlsm.
    tth img w10 app excel dev vba projektvindue
  • Vinduet Egenskaber viser egenskaberne for det objekt, der er valgt i projektvinduet. For eksempel, hvis du vælger Sheet1-objektet, vil du se dets egenskaber, såsom dets navn (navn), dets farve (Tab.Color), dets kode (CodeName) osv.
    tth img w10 app excel dev vba ejendom vindue
  • Kodevinduet viser den VBA-kode, der er knyttet til det valgte objekt i projektvinduet. Hvis du f.eks. vælger Sheet1-objektet, vil du se den VBA-kode, der kører, når du interagerer med Sheet1-regnearket.
    tth img w10 app excel dev vba vindue kode
  • Vinduet Øjeblikkelig viser VBA-koderesultater eller fejlmeddelelser. For eksempel, hvis du bruger MsgBox-funktionen til at vise en besked til brugeren, vil du se beskeden vises i vinduet Øjeblikkelig.
    tth img w10 app excel dev vba vindue

For at skrive VBA-kode skal du følge visse syntaksregler:

  • Hvert udsagn skal slutte med en ny linje eller et kolon (:).
  • Nøgleord i VBA-sprog skal skrives med store eller små bogstaver, men ikke navnene på objekter, egenskaber eller metoder, der skelner mellem store og små bogstaver.
  • Kommentarer skal indledes med apostrof (') eller Rem-tegn og skal skrives på en separat linje eller efter en erklæring.
  • Tegnstrenge skal være omgivet af dobbelte anførselstegn (").
  • De aritmetiske operatorer er +, -, *, / og ^ (potens).
  • De logiske operatorer er And, Or, Not, Xor og Eqv.
  • 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 MsgBox-kommentar "Hej, jeg er Bing!" ' Viser en Afslut under-meddelelse 

Hvordan bruger man Excel-regnearksfunktioner i VBA?

Du kan bruge de fleste Excel-regnearksfunktioner i dine VBA-udsagn. For at gøre dette skal du bruge følgende syntaks:

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

For eksempel, hvis du 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 ' Erklærer 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 resultatet, der skal returneres, til funktionen Slutfunktion

Hvis du for eksempel vil oprette en funktion, der beregner kvadratet af et tal, kan du skrive:

Funktion Kvadrat(tal Som Dobbelt) Som Dobbelt ' Erklærer en funktion, der tager et tal som argument og returnerer et tal Kvadrat = tal * tal ' Tildeler kvadratet af tallet til funktionen Slutfunktion

Du kan derefter bruge denne funktion i dine VBA-udsagn eller i dine Excel-formler. For eksempel :

Sub Test() Dim x As Double ' Erklærer en variabel af typen Double x = 5 ' Tildeler værdien 5 til variablen MsgBox Square(x) ' Viser kvadratet af x End Sub

Hvordan opretter man makroer i Excel?

En makro er et sæt VBA-instruktioner, der udføres på é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 involverer at bruge knappen Optag makro på fanen Udvikler på båndet til at fange 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 den kan producere dårligt optimeret eller overflødig kode.

Følg disse trin for at optage en makro:

  • Klik på knappen Optag makro på fanen Udvikler på båndet.
    tth img w10 app excel dev save makro
  • I dialogboksen Optag makro skal du give din makro et navn, vælge en tastaturgenvej, hvis du vil, vælge en placering til at gemme din makro (aktiv projektmappe, ny projektmappe eller personlig projektmappe), og skrive en beskrivelse, hvis du vil.
    tth img w10 app excel dev save makro
  • Klik på OK for at starte optagelsen.
  • Udfør de handlinger, du vil automatisere i Excel. For eksempel, hvis du vil oprette en makro, der formaterer en tabel, skal du vælge tabellen, style den, sortere den alfabetisk osv.
  • Klik på knappen Stop optagelse på fanen Udvikler på båndet for at afslutte optagelsen.

Du kan derefter køre din makro ved at bruge din valgte tastaturgenvej ved at klikke på knappen Makroer på fanen Udvikler på båndet eller ved at bruge knappen Kør i VBE.

Skriv en makro

At skrive en makro involverer at bruge VBE til direkte at indtaste den VBA-kode, der svarer til de handlinger, du vil automatisere. Dette er den mest fleksible og kraftfulde metode til at lave en makro, men den kræver programmeringsviden.

Følg disse trin for at skrive en makro:

  • Åbn VBE ved at klikke på Visual Basic-knappen på fanen Udvikler på båndet.
    tth img w10 app excel dev vba
  • I projektvinduet skal du vælge det objekt, hvor du vil gemme din makro (aktiv projektmappe, ny projektmappe eller personlig projektmappe).
  • I vinduet Kode 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 indtaste følgende kode:
Sub FormatTable() ' Vælger tabellen Range("A1:D10").Select ' Anvender en typografi til tabellen Selection.Style = "Tabel 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:=xlWorksheetbook With Active.Worksheetbook With Active. ("Sheet1").Sort .SetRange Range("A1:D10") .Header = xlYes .MatchCase = Falsk .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub

Du kan derefter køre din makro ved at bruge knappen Kør i VBE eller ved at tildele den en tastaturgenvej eller kontrol.

tth img w10 app excel dev vba test kode

Ofte stillede spørgsmål

Her er nogle ofte stillede spørgsmål om brug af VBA i Excel:

Hvad er VBA og hvorfor bruge det?

VBA er den version af Visual Basic, der leveres med Microsoft Office. Det er et objektorienteret programmeringssprog , der bruger syntaks tæt på naturligt sprog. VBA giver dig mulighed for at få adgang til og manipulere Excels objekter, egenskaber og metoder ved hjælp af kode. Du kan derfor styre Excel på en finere og mere kraftfuld måde end gennem den grafiske grænseflade.

Brug af VBA har flere fordele:

  • Du kan automatisere gentagne eller kedelige opgaver, som at rense data, formatere tabeller, oprette diagrammer og meget mere.
  • Du kan tilpasse Excel til dine specifikke behov, tilføje funktioner, der ikke findes i softwaren, eller ændre dens adfærd.
  • Du kan interagere med brugeren ved hjælp af dialoger, formularer eller brugerdefinerede meddelelser.
  • Du kan integrere Excel med andre Office-applikationer eller eksterne datakilder, som Outlook, Word, Access, SQL Server osv.

Hvordan fejlfinder man VBA-kode i Excel?

For at fejlsøge VBA-kode i Excel kan du bruge VBE-værktøjer, såsom breakpoints, stepping, Watch-vindue eller Locales-vindue. 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. For at gøre dette skal du følge disse trin:

  • Åbn VBE ved at klikke på Visual Basic-knappen på fanen Udvikler på båndet.
  • Højreklik på VBA-projektnavnet i projektvinduet og vælg VBA-projektegenskaber.
  • Klik på fanen Beskyttelse i dialogboksen VBA-projektegenskaber.
  • Marker afkrydsningsfeltet Lås projektet til visning, og skriv en adgangskode og bekræft den.
  • Klik på OK for at lukke dialogboksen.
  • Gem og luk projektmappen.

Hvordan kører man en makro, når man åbner eller lukker en projektmappe?

For at køre en makro, når du åbner eller lukker en projektmappe, skal du bruge begivenhederne Workbook_Open eller Workbook_BeforeClose. For at gøre dette skal du følge disse trin:

  • Åbn VBE ved at klikke på Visual Basic-knappen på fanen Udvikler på båndet.
  • I projektvinduet skal du vælge ThisWorkbook-objektet under projektmappens navn.
  • I kodevinduet skal du vælge Arbejdsbog fra rullelisten Objekt øverst til venstre.
  • Vælg Åbn eller Før Luk fra rullelisten Procedure øverst til højre.
  • Indtast VBA-koden, der kalder den makro, du vil køre. For eksempel :
Private Sub Workbook_Open() ' Kører Hello-makroen, når projektmappen åbnes Hello End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) ' Kører AuRevoir-makroen, når projektmappen lukkes AuRevoir End Sub

Hvordan opretter man en formular i Excel med VBA?

For at oprette en formular i Excel med VBA skal du bruge VBE'ens formulardesigner. For at gøre dette skal du følge disse trin:

  • Åbn VBE ved at klikke på Visual Basic-knappen på fanen Udvikler på båndet.
  • Højreklik på VBA-projektets navn i projektvinduet og vælg Indsæt og derefter UserForm.
  • Et nyt UserForm-vindue åbnes. Du kan tilføje kontrolelementer som etiketter, tekstbokse, knapper osv. til den. ved at trække dem fra værktøjskassen.
  • Du kan ændre egenskaberne for kontrolelementer i vinduet Egenskaber eller skrive VBA-kode for at håndtere deres hændelser i kodevinduet.
  • For at få vist formularen kan du bruge metoden Vis. For eksempel :
Sub ShowForm() ' Viser formen UserForm1 UserForm1.Show End Sub

Hvordan opretter man en brugerdefineret funktion i Excel med VBA?

For at oprette en brugerdefineret funktion i Excel med VBA skal du bruge følgende syntaks:

Funktion Funktionsnavn(argument1 Som Type1, argument2 Som Type2, ...) Som ReturnType ' Deklarationer og instruktioner Funktionsnavn = udtryk ' Tildeler resultatet, der skal returneres, til funktionen Slutfunktion

Hvis du for eksempel vil oprette en funktion, der beregner kvadratet af et tal, kan du skrive:

Funktion Kvadrat(tal Som Dobbelt) Som Dobbelt ' Erklærer en funktion, der tager et tal som argument og returnerer et tal Kvadrat = tal * tal ' Tildeler kvadratet af tallet til funktionen Slutfunktion

Du kan derefter bruge denne funktion i dine VBA-udsagn eller i dine Excel-formler. For eksempel :

Sub Test() Dim x As Double ' Erklærer 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 resultatet, der skal returneres, til funktionen Slutfunktion

Hvis du for eksempel vil oprette en funktion, der beregner kvadratet af et tal, kan du skrive:

Funktion Kvadrat(tal Som Dobbelt) Som Dobbelt ' Erklærer en funktion, der tager et tal som argument og returnerer et tal Kvadrat = tal * tal ' Tildeler kvadratet af tallet til funktionen Slutfunktion

Du kan derefter bruge denne funktion i dine VBA-udsagn eller i dine Excel-formler. For eksempel :

Sub Test() Dim x As Double ' Erklærer en variabel af typen Double x = 5 ' Tildeler værdien 5 til variablen MsgBox Square(x) ' Viser kvadratet af x End Sub

Eller

=Square(A1) ' Beregner kvadratet af værdien af ​​celle A1

Konklusion

Du lærte i denne artikel, hvordan du bruger Visual Basic for Application (VBA) i Excel. Du har set, hvad VBA er, og hvorfor du bruger 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 at foretage en subtraktion i Excel . Du kan nu udnytte programmeringskraften i VBA til at tilpasse og automatisere Excel efter behov.

Forrige artikel Hvordan lærer man Python på begynderniveau?
Næste artikel Sådan opretter du forbindelse til din Bouygues Telecom-postkasse?