Visual Basic for Applications (VBA) er eit hendingstyrt programmeringsspråk som primært vert brukt for automatisering i Microsoft Office-applikasjonar. Det er avleidd frå Microsofts Visual Basic, og gjer det mogleg for brukarar å lage makroar og automatisere repetitive oppgåver innan Office-program som Excel, Word, Access og Outlook. VBA gir eit rikt miljø for brukarar som treng å auke funksjonaliteten til Office-applikasjonar ved å skrive tilpassa funksjonar og prosedyrar.
VBA vart utvikla av Microsoft tidleg på 1990-talet som ein del av Office-applikasjonane deira. Det vart utforma for å la brukarar ikkje berre automatisere operasjonar innan desse applikasjonane, men også for å lage brukardefinerte funksjonar og få tilgang til eksterne datakjelder og databasar. Integrasjonen av VBA i ulike Microsoft Office-produkter gjorde det mogleg for brukarar å utvide funksjonaliteten til applikasjonar som elles var avgrensa til deira innebygde funksjonar.
VBA er bygd på filosofien til Visual Basic, og låner syntaksen og det hendingstyrte modellen, men er tilpassa for å fungere innan Office-miljøet. I motsetnad til foreldrespråket sitt, er ikkje VBA eit frittståande programmeringsspråk, men fungerer i staden som eit skriptverktøy for å automatisere oppgåver i Office-applikasjonar.
Med innføringa av meir moderne språk og verktøy, som JavaScript for Office (Office Add-ins), har populariteten til VBA sett ein gradvis nedgang. Likevel er VBA framleis djupt forankra i mange verksemder og organisasjonar, spesielt for oppgåver som datamanipulering, rapportgenerering og automatisering av arbeidsflytar. Mange eldre systemer er framleis avhengige av VBA, noko som sikrar at det forblir relevant.
VBA tillèt erklæring av variablar med spesifikke datatypar. For eksempel kan du erklære ein heiltalsvariabel som følgjer:
Dim count As Integer
count = 10
VBA støttar standard kontrollstrukturer som If...Then...Else
for å implementere betingingslogikk:
If count > 5 Then
MsgBox "Talet er større enn 5"
Else
MsgBox "Talet er 5 eller mindre"
End If
VBA gir fleire løkkekonstruksjonar, inkludert For...Next
:
For i = 1 To 10
MsgBox i
Next i
Du kan definere tilpassa funksjonar i VBA, som kan returnere verdiar:
Function AddNumbers(a As Integer, b As Integer) As Integer
AddNumbers = a + b
End Function
VBA inkluderer feilhåndteringskapasitetar ved hjelp av On Error
-setningar:
On Error GoTo ErrorHandler
' Koden din her
Exit Sub
ErrorHandler:
MsgBox "Ein feil oppstod: " & Err.Description
VBA nyttar objektorienterte prinsipp, som gjer det mogleg å manipulere objekt som regneark og diagram:
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
ws.Range("A1").Value = "Hei, VBA!"
VBA støttar hendingstyrt programmering, og reagerer på handlingar som knappetrykk:
Private Sub CommandButton1_Click()
MsgBox "Knappen vart trykt!"
End Sub
Du kan erklære og arbeide med arrayer i VBA:
Dim myArray(1 To 5) As Integer
myArray(1) = 10
VBA tillèt oppretting av brukarskjema for interaktive grensesnitt:
Dim myForm As UserForm
Set myForm = New UserForm
myForm.Show
Du kan legge til kommentarar i koden din for betre lesbarheit:
' Dette er ein kommentar i VBA
VBA vert for det meste brukt innan det integrerte utviklingsmiljøet (IDE) som vert levert av Microsoft Office-applikasjonar. Visual Basic Editor (VBE) er der brukarar kan skrive, feilsøke og administrere VBA-koden sin. Tilgang til VBE kan gjerast gjennom Office-applikasjonen ved å trykke ALT + F11
.
For å bygge eit VBA-prosjekt, opnar brukaren vanlegvis den relevante Office-applikasjonen, får tilgang til VBE, og begynner å kode. Prosjekt kan bli lagra som ein del av Office-dokumentet eller eksportert som separate .bas
-filer for bruk i andre prosjekt.
VBA-kode køyrer innan kjøretidsmiljøet som vert levert av dei respektive Office-applikasjonane, noko som gjer det mogleg med sømlaus interaksjon med Office-objektmodellen og den aktive arbeidsboka eller dokumentet.
VBA vert nytta i ei rekkje applikasjonar, inkludert, men ikkje avgrensa til:
Når ein samanliknar med andre språk som Python eller JavaScript, har VBA ein unik nisje på grunn av den tette koplinga til Microsoft Office. Python er ofte meir allsidig og anvendbar innan datavitenskap, webutvikling og automatisering utover Office-applikasjonar. JavaScript, sjølv om det også vert brukt for automatisering, spesielt med Office Add-ins, er meir web-sentrert. C# og VB.NET er meir generelle programmeringsspråk og vert brukt for breiare applikasjonar utanfor Office, medan VBA er spesifikt utforma for Office-automatisering.
Når ein oversetter VBA til andre programmeringsspråk, bør ein ta hensyn til den hendingstyrte naturen og objektorienterte funksjonane til VBA, spesielt avhengigheita av Office-objektmodellen. Verktøy som kan hjelpe i slike oversettingar inkluderer: