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.

Læses lige nu

    Annonceindlæg fra Thales

    AI gør de ondsindede bots både billigere og sværere at stoppe

    Kunstig intelligens har ikke bare givet virksomheder nye muligheder.

    Navnenyt fra it-Danmark

    Pinksky har pr. 1. maj 2026 ansat Alexander Skou Henkel, 39 år,  som Rådgivende konsulent. Han skal især beskæftige sig med optimering af forretningsprocesser i Microsoft platformen. Han kommer fra en stilling som IT forretningskonsulent hos Evobis ApS. Han har tidligere beskæftiget sig med forretningsudvikling i Microsoft platformen. Nyt job
    Pinksky ApS har pr. 1. maj 2026 ansat Dan Toft, 29 år,  som Rådgivende konsulent, Partner. Han skal især beskæftige sig med digitalisering med Microsoftplatformen. Han kommer fra en stilling som Microsoft 365 & SharePoint Specialist hos Evobis ApS. Han er uddannet datamatiker. Han har tidligere beskæftiget sig med Microsoft 365 og SharePoint udvikling. Nyt job

    Dan Toft

    Pinksky ApS

    Renewtech ApS har pr. 1. marts 2026 ansat Emil Holme Fisker som Customer Service Specialist. Han skal især beskæftige sig med at levere høj kvalitets kundeservice og hjælpe Renewtechs kunder med at få de rette løsninger til deres behov. Han kommer fra en stilling som Key Account Manager hos Camro A/S. Han er uddannet som salgselev hos Camro A/S. Han har tidligere beskæftiget sig med at udvikle gode kunderelationer, opsøgende salg og udvikling af salgsaktiviteter. Nyt job

    Emil Holme Fisker

    Renewtech ApS

    Netip A/S har pr. 1. februar 2026 ansat Henrik Mejnhardt Nielsen som ny kollega til Product Sales Teamet i Herlev. Han kommer fra en stilling som Business Development Manager hos Arrow. Nyt job