Programmering med Office

Visual Basic for Applications er Microsofts scriptingsprog til Office-kontorsuiten. Der er tale om et særdeles stærkt værktøj, der kan bruges til trivielle makroer såvel som komplekse databaseorienterede løsninger. I den første af en række artikler kigger vi på programmeringsmiljøet i Office.

Fuldt udviklingsmiljø

Visual Basic for Applications giver udvikleren et fuldt udviklingsmiljø som indeholder mange af de elementer, der findes i den "rigtige" Visual Basic, så som nem redigering af egenskaber og værktøjer til aflusning.

Der er flere måder at skrive VBA-programmer på. En metode er selvfølgelig at skrive det hele fra bunden, og det gør vi i denne artikel. En anden mulighed er at optage en makro på den gammeldags facon. Når man optager en makro i et Office-program, bliver de optagede handlinger gemt som VBA-kommandoer, som man derefter kan efterredigere i. Det kan være en nem måde at komme i gang på, da man hurtigt får et overblik over, hvilke egenskaber og metoder der ligger bag en given funktion i programmerne.

De følgende eksempler er skabt med Office 2000 Premium Edition under Windows 2000. Det kan i øvrigt anbefales at finde Office 2000-cd'en frem, da VBA's hjælpefiler ikke er installeret i en standardinstallation af Office.

Mit første VBA-program

Hallo verden
Lad os straks skrive det første lille program, hvor vi stifter bekendtskab med VBA-editoren. Åbn Word, og vælg menuen Funktioner > Makro > Visual Basic Editor. Nu åbnes VBA-kodeeditoren.

Til venstre ser vi Project Explorer-vinduet, som viser de filer, der hører til det aktuelle projekt. Her er "projektet" lig med vores Word-dokument. Til højre har vi kode-vinduet, som er stedet, hvor VBA-koden indskrives.

Nu hedder det jo ikke Visual Basic for ingenting - VBA er et Rapid Development-værktøj (RAD), og det indebærer, at mange opgaver kan løses ved at manipulere med symboler. Klik på knappen Design Mode i VBA-editoren. Nu kommer værktøjspaletten Kontrolelementer til syne.

Den kan benyttes til at indsætte kontroller, som er Microsofts navn for brugerfladeelementer, i applikationen. Applikationen er i dette tilfælde et Word-dokument, så vi vender tilbage til Word. Vi indsætter nu en knap ved at klikke på det tredie ikon i værktøjspaletten Kontrolelementer.

Test

Vi kan nu teste vores knap ved at klikke Designtilstand fra. Det gøres ved at klikke på den øverste, første knap i Kontrolelementer - den med den turkisfarvede vinkel. Nu kan man klikke på vores hjemmelavede knap - men den gør bare ikke noget. Så det får vi den til.

Vend tilbage til designtilstand ved at klikke på det turkisfarvede ikon igen, og dobbeltklik på vores egen, hjemmelavede knap i Word-dokumentet. Nu hopper Office tilbage til VBA-editoren, og i kode-vinduet ser vi nu den funktion - event-handler - som aktiveres, når brugeren klikker på knappen i Word-dokumentet.

Nu tilføjer vi nogle kode-linier imellem de to linier

Private Sub CommandButton1_Click()

End Sub

- og det, vi tilføjer, er en dialog-boks, der hilser på verden. Det ser sådan ud i Visual Basic:

MsgBox "Hej Verden!"

så det hele ser nu sådan ud:

Private Sub CommandButton1_Click()
   MsgBox "Hej Verden!"
End Sub

Når vi nu vender tilbage i Word, og slår designvisning fra, så kan vi klikke på vores knap, og så ser det sådan ud:

Nu ser det lidt dumt ud med en knap hvor der står CommandButton, så lad os pille lidt ved kontrollens - knappens - egenskaber. Vend tilbage til VBA-editoren, og vælg menuen View > Properties Window. Her kan egenskaber for kontrollen sættes, og her sætter vi knappens tekst til "Klik på mig".

I den næste artikel, som kan læses i næste uge, ser vi mere indgående på de funktioner, VBA-editoren tilbyder, og vi går i gang med et lidt mere omfangsrigt eksempel.

Event: Computerworld Cloud & AI Festival

Digital transformation | Ballerup

Med den eksplosive udvikling indenfor cloud & AI er behovet for at følge med og vidensdeling større end nogensinde før. Glæd dig til to dage, hvor du kan netværke med over 2.500 it-professionelle, møde mere end 60 leverandører og høre indlæg fra +90 talere. Vi sætter fokus på emner som AI; infrastruktur, compliance, sikkerhed og løsninger for både private og offentlige organisationer.

16. & 17. september 2026 | Gratis deltagelse

Navnenyt fra it-Danmark

Norriq Danmark A/S har pr. 1. september 2025 ansat Thea Scheuer Gregersen som Finace accountant. Hun skal især beskæftige sig med håndteringer af bl.a. bogføring og finansiel rapportering på tværs af selskaberne. Hun er uddannet Bachelor´s degree i Business Administration & Economics og en Master of Sustainable Business degree. Nyt job

Thea Scheuer Gregersen

Norriq Danmark A/S

Netip A/S har pr. 15. september 2025 ansat Benjamin Terp som Supportkonsulent ved netIP's kontor i Odense. Han er uddannet IT-Supporter hos Kjaer Data. Nyt job

Benjamin Terp

Netip A/S

Signifly har pr. 1. august 2025 ansat Anders Kirk Madsen som Tech Lead. Anders skal især beskæftige sig med at hjælpe Signiflys offentlige og private kunder med at styrke forretningen gennem teknisk solide løsninger. Anders kommer fra en stilling som Business Architect hos SOS International. Nyt job
Netip A/S har pr. 15. september 2025 ansat Jimmi Overgaard som Key Account Manager ved netIP's kontor i Viborg. Han kommer fra en stilling som Sales Executive hos Globalconnect A/S. Nyt job

Jimmi Overgaard

Netip A/S