Visual Basic for Applications ( VBA ) er et programmeringsspråk som lar deg utvide Excels funksjonalitet og automatisere repeterende oppgaver. Med VBA kan du opprette makroer, skjemaer, tilpassede funksjoner og interaktive applikasjoner. I denne artikkelen lærer du det grunnleggende om VBA i Excel og hvordan du bruker det til å utføre enkle eller komplekse operasjoner.
Hvordan får jeg tilgang til VBA i Excel?

For å få tilgang til VBA i Excel, må du aktivere Utvikler-fanen i båndet. Følg disse trinnene for å gjøre dette:
- Klikk på Fil-knappen, og klikk deretter på Alternativer.

- I Excel-alternativer-vinduet klikker du på Tilpass båndet.

- I listen over hovedfaner merker du av for Utvikler-boksen og klikker deretter OK.
Du vil da se Utvikler-fanen vises på båndet. Denne fanen inneholder flere verktøy relatert til VBA, for eksempel Visual Basic-knappen, Spill inn makro-knappen og Sett inn kontroll-knappen.


Visual Basic-knappen åpner Visual Basic Editor (VBE), der du oppretter og endrer VBA-kode. Spill inn makro-knappen genererer automatisk VBA-kode som replikerer handlingene du utfører i programmet. Sett inn kontroll-knappen lar deg legge til interaktive elementer i regnearket ditt, for eksempel knapper, avmerkingsbokser eller rullegardinlister.
Hvordan skriver jeg VBA-kode i Excel?
For å skrive VBA-kode i Excel må du bruke Visual Basic Editor (VBE). For å åpne den, klikk på Visual Basic-knappen i Utvikler-fanen på båndet.
VBE består av flere vinduer:

- Prosjektvinduet viser den hierarkiske strukturen til objekter som inneholder VBA-kode. Hvis du for eksempel har en arbeidsbok kalt MinArbeidsbok.xlsm med to ark kalt Ark1 og Ark2, vil du se objektene Ark1 og Ark2 vises under MinArbeidsbok.xlsm, samt et objekt kalt DenneArbeidsboken.

- Egenskapsvinduet viser egenskapene til objektet som er valgt i Prosjektvinduet. Hvis du for eksempel velger Sheet1-objektet, vil du se egenskapene, som navn (Name), farge (Tab.Color), kode (CodeName) osv.

- Kodevinduet viser VBA-koden som er knyttet til objektet som er valgt i Prosjektvinduet. Hvis du for eksempel velger Ark1-objektet, vil du se VBA-koden som kjører når du samhandler med Ark1-regnearket.

- I direktevinduet vises resultatene av VBA-koden eller feilmeldinger. Hvis du for eksempel bruker MsgBox-funksjonen til å vise en melding til brukeren, vil du se meldingen i direktevinduet.

For å skrive VBA-kode må du følge visse syntaksregler:
- Hver instruksjon må avsluttes med et linjeskift eller et kolontegn (:).
- VBA-nøkkelord må skrives med store eller små bokstaver, men ikke navnene på objekter, egenskaper eller metoder, som skiller mellom store og små bokstaver.
- Kommentarer må innledes av apostroftegnet (') eller Rem og må skrives på en egen linje eller etter en instruksjon.
- Tegnstrenger må omsluttes av doble anførselstegn (").
- De aritmetiske operatorene er +, -, *, / og ^ (potens).
- De logiske operatorene er Og, Eller, Ikke, Xeller og Eqv.
- Sammenligningsoperatorene er =, <>, <, <=, > og >=.
- De forhåndsdefinerte konstantene er True, Usanne, Null, Empty, Nothing og vbNullString.
Her er et eksempel på VBA-kode som viser en melding til brukeren:
Sub Hello() ' Dette er en kommentar MsgBox "Hei, jeg er Bing!" ' Viser en melding Avslutt Sub
Hvordan bruker man regnearkfunksjoner i Excel i VBA?
Du kan bruke de fleste funksjonene i Excel-regneark i VBA-instruksjonene dine. For å gjøre dette må du bruke følgende syntaks:
Application.WorksheetFunction.FunctionName(argument1, argument2, ...)
Hvis du for eksempel vil bruke SUM-funksjonen til å beregne summen av verdiene i området A1:A10, kan du skrive:
Sub Sum() Dim result As Double ' Deklarerer en variabel av typen Double result = Application.WorksheetFunction.Sum(Range("A1:A10")) ' Tilordner resultatet av SUM-funksjonen til variabelen MsgBox result ' Viser resultatet End Sub
Du kan også bruke egendefinerte funksjoner som du lager selv i VBA. For å gjøre dette må du bruke følgende syntaks:
Funksjon Funksjonsnavn(argument1 Som Type1, argument2 Som Type2, ...) Som ReturnType ' Deklarasjoner og instruksjoner Funksjonsnavn = uttrykk ' Tilordner resultatet som skal returneres til funksjonen End Function
Hvis du for eksempel vil opprette en funksjon som beregner kvadratet av et tall, kan du skrive:
Funksjon Kvadrat(tall Som dobbel) Som dobbel ' Deklarerer en funksjon som tar et tall som argument og returnerer et tall Kvadrat = tall * tall ' Tilordner kvadratet av tallet til funksjonen End Function
Du kan deretter bruke denne funksjonen i VBA-instruksjonene dine eller i Excel-formlene dine. For eksempel:
Sub Test() Dim x As Double ' Deklarerer en variabel av typen Double x = 5 ' Tilordner verdien 5 til variabelen MsgBox Square(x) ' Viser kvadratet av x End Sub
Hvordan lager jeg makroer i Excel?
En makro er et sett med VBA-instruksjoner som kjøres én gang. Du kan opprette makroer for å automatisere gjentakende eller komplekse oppgaver i Excel. Det er to måter å opprette makroer på: ved å registrere dem eller ved å skrive dem.
Spill inn en makro
Å spille inn en makro innebærer å bruke knappen Spill inn makro i Utvikler-fanen på båndet for å fange opp handlingene du utfører i Excel og konvertere dem til VBA-kode. Dette er den enkleste og raskeste måten å opprette en makro på, men det kan produsere dårlig optimalisert eller overflødig kode.
For å spille inn en makro, følg disse trinnene:
- Klikk på Spill inn makro-knappen i Utvikler-fanen på båndet.

- I dialogboksen Registrer makro gir du makroen et navn, velger en hurtigtast hvis du ønsker det, velger en plassering for å lagre makroen (aktiv arbeidsbok, ny arbeidsbok eller personlig arbeidsbok) og skriver en beskrivelse hvis du ønsker det.

- Klikk OK for å starte opptaket.
- Utfør handlingene du vil automatisere i Excel. Hvis du for eksempel vil opprette en makro som formaterer en tabell, merker du tabellen, bruker en stil på den, sorterer den alfabetisk osv.
- Klikk på Stopp opptak-knappen i Utvikler-fanen på båndet for å avslutte opptaket.
Du kan deretter kjøre makroen din ved hjelp av den valgte hurtigtasten, ved å klikke på Makroer-knappen i Utvikler-fanen på båndet, eller ved å bruke Kjør-knappen i VBE.
Skriv en makro
Å skrive en makro innebærer å bruke VBE til å skrive VBA-koden som samsvarer med handlingene du vil automatisere direkte. Det er den mest fleksible og kraftige metoden for å lage en makro, men det krever programmeringskunnskap.
For å skrive en makro, følg disse trinnene:
- Åpne VBE ved å klikke på Visual Basic-knappen i Utvikler-fanen på båndet.

- I prosjektvinduet velger du objektet der du vil lagre makroen (aktiv arbeidsbok, ny arbeidsbok eller personlig arbeidsbok).
- I kodevinduet skriver du inn VBA-koden som samsvarer med handlingene du vil automatisere. Hvis du for eksempel vil opprette en makro som formaterer en tabell, skriver du inn følgende kode:
Sub FormatTable() ' Velger tabellen Range("A1:D10").Select ' Bruker en stil på tabellen Selection.Style = "Tabell 1" ' Sorterer tabellen alfabetisk etter 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 deretter kjøre makroen din ved hjelp av Kjør-knappen i VBE eller ved å tilordne den en hurtigtast eller kontroll.

Vanlige spørsmål
Her er noen vanlige spørsmål om bruk av VBA i Excel:
Hva er VBA og hvorfor bruke det?
VBA er versjonen av Visual Basic som følger med Microsoft Office. Det er et objektorientert programmeringsspråk som bruker en syntaks som ligner på naturlig språk. VBA lar deg få tilgang til og manipulere Excels objekter, egenskaper og metoder ved hjelp av kode. Dette gir deg mer presis og kraftig kontroll over Excel enn gjennom det grafiske grensesnittet.
Å bruke VBA gir flere fordeler:
- Du kan automatisere repeterende eller kjedelige oppgaver, som dataopprydding, tabellformatering, diagramoppretting osv.
- Du kan tilpasse Excel slik at det passer dine spesifikke behov, legge til funksjoner som ikke finnes i programvaren eller endre virkemåten.
- Du kan samhandle med brukeren ved hjelp av dialogbokser, skjemaer eller tilpassede meldinger.
- Du kan integrere Excel med andre Office-programmer eller eksterne datakilder, for eksempel Outlook, Word, Access, SQL Server osv.
Hvordan feilsøke VBA-kode i Excel?
For å feilsøke VBA-kode i Excel kan du bruke VBE-verktøy som stoppunkter, stepping, overvåkingsvinduet eller vinduet for lokale innstillinger. Disse verktøyene lar deg kontrollere kodekjøring, sjekke variabelverdier og finne feil.
Hvordan beskytte VBA-kode i Excel?
For å beskytte VBA-kode i Excel kan du låse VBA-prosjektet med et passord. Følg disse trinnene for å gjøre dette:
- Åpne VBE ved å klikke på Visual Basic-knappen i Utvikler-fanen på båndet.
- I prosjektvinduet høyreklikker du på VBA-prosjektnavnet og velger VBA-prosjektegenskaper.
- Klikk på fanen Beskyttelse i dialogboksen for VBA-prosjektegenskaper.
- Kryss av i boksen for å låse prosjektet for visning, skriv inn et passord, og bekreft det deretter.
- Klikk OK for å lukke dialogboksen.
- Lagre og lukk arbeidsboken.
Hvordan kjører jeg en makro når jeg åpner eller lukker en arbeidsbok?
For å kjøre en makro når en arbeidsbok åpnes eller lukkes, må du bruke hendelsene Workbook_Open eller Workbook_BeforeClose. Følg disse trinnene for å gjøre dette:
- Åpne VBE ved å klikke på Visual Basic-knappen i Utvikler-fanen på båndet.
- I Prosjekt-vinduet velger du ThisWorkbook-objektet under arbeidsboknavnet.
- I kodevinduet velger du Arbeidsbok fra rullegardinlisten Objekt øverst til venstre.
- Velg Åpne eller FørLukking fra rullegardinlisten Prosedyre øverst til høyre.
- Skriv inn VBA-koden som kaller makroen du vil kjøre. For eksempel:
Private Sub Workbook_Open() ' Utfører makroen Bonjour når arbeidsboken åpnes Bonjour End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) ' Utfører makroen AuRevoir når arbeidsboken lukkes AuRevoir End Sub
Hvordan lage et skjema i Excel ved hjelp av VBA?
For å opprette et skjema i Excel ved hjelp av VBA, må du bruke VBA Form Designer. Følg disse trinnene for å gjøre dette:
- Åpne VBE ved å klikke på Visual Basic-knappen i Utvikler-fanen på båndet.
- I prosjektvinduet høyreklikker du på VBA-prosjektnavnet og velger Sett inn og deretter Brukerskjema.
- Et nytt UserForm-vindu åpnes. Du kan legge til kontroller som etiketter, tekstbokser, knapper osv. ved å dra dem fra verktøykassen.
- Du kan endre egenskapene til kontrollene i Egenskaper-vinduet eller skrive VBA-kode for å håndtere hendelsene deres i Kode-vinduet.
- For å vise skjemaet kan du bruke Vis-metoden. For eksempel:
Sub ShowForm() ' Viser skjemaet Brukerskjema1 Brukerskjema1.Show Slutt Sub
Hvordan oppretter man en egendefinert funksjon i Excel ved hjelp av VBA?
For å opprette en egendefinert funksjon i Excel ved hjelp av VBA, må du bruke følgende syntaks:
Funksjon Funksjonsnavn(argument1 Som Type1, argument2 Som Type2, ...) Som ReturnType ' Deklarasjoner og instruksjoner Funksjonsnavn = uttrykk ' Tilordner resultatet som skal returneres til funksjonen End Function
Hvis du for eksempel vil opprette en funksjon som beregner kvadratet av et tall, kan du skrive:
Funksjon Kvadrat(tall Som dobbel) Som dobbel ' Deklarerer en funksjon som tar et tall som argument og returnerer et tall Kvadrat = tall * tall ' Tilordner kvadratet av tallet til funksjonen End Function
Du kan deretter bruke denne funksjonen i VBA-instruksjonene dine eller i Excel-formlene dine. For eksempel:
Sub Test() Dim x As Double ' Deklarerer en variabel av typen Double x = 5 ' Tilordner verdien 5 til variabelen MsgBox Square(x) ' Viser kvadratet av x End Sub
Du kan også bruke egendefinerte funksjoner som du lager selv i VBA. For å gjøre dette må du bruke følgende syntaks:
Funksjon Funksjonsnavn(argument1 Som Type1, argument2 Som Type2, ...) Som ReturnType ' Deklarasjoner og instruksjoner Funksjonsnavn = uttrykk ' Tilordner resultatet som skal returneres til funksjonen End Function
Hvis du for eksempel vil opprette en funksjon som beregner kvadratet av et tall, kan du skrive:
Funksjon Kvadrat(tall Som dobbel) Som dobbel ' Deklarerer en funksjon som tar et tall som argument og returnerer et tall Kvadrat = tall * tall ' Tilordner kvadratet av tallet til funksjonen End Function
Du kan deretter bruke denne funksjonen i VBA-instruksjonene dine eller i Excel-formlene dine. For eksempel:
Sub Test() Dim x As Double ' Deklarerer en variabel av typen Double x = 5 ' Tilordner verdien 5 til variabelen MsgBox Square(x) ' Viser kvadratet av x End Sub
Eller
=KVADRAT(A1) ' Beregner kvadratet av verdien i celle A1
Konklusjon
I denne artikkelen lærte du hvordan du bruker Visual Basic for Applications (VBA) i Excel. Du så hva VBA er og hvorfor du bruker det, hvordan du får tilgang til VBA i Excel, hvordan du skriver VBA-kode i Excel, hvordan du bruker Excel-regnearkfunksjoner i VBA, hvordan du oppretter makroer i Excel med VBA, hvordan du oppretter skjemaer i Excel med VBA, og hvordan du oppretter egendefinerte funksjoner i Excel med VBA. Blant de egendefinerte funksjonene du kan opprette med VBA, er funksjonen for å utføre subtraksjon i Excel . Du kan nå utnytte programmeringskraften til VBA for å tilpasse og automatisere Excel slik at det passer dine behov.
![[GetPaidStock.com]-648864a469b9a](https://tt-hardware.com/wp-content/uploads/2023/06/GetPaidStock.com-648864a469b9a-696x400.jpg)


