VBA 1 – 02 VBA-editoren

vba introkursus

Gennemgang af VBA-editorens udseende, værktøjer og arbejdsområder.




Her gennemgår vi VBA-eeditoren, så vi vil være bekendte med at arbejde deri, når vi skal videre til programmeringen.

Vi åbner editoren ved at vælge udvikler-fanen og trykke på knappen, der hedder Visual Basic. Det er også muligt at åbne VBA-editoren ved at trykke Alt + F11 på keyboardet.

VBA-editoren ser således ud og har en række vinduer. Der er projektvinduet, egenskabsvinduet, kodningsvinduet, en række menuer, og toolbars alt afhængigt af, hvordan man har sat det op.

Vi starter med at kigge på projektvinduet. VBA har en række projektstyringsværktøjer, hvormed der er mulighed for at styre objekterne, som der tilhører kodning. Det er lidt fint sagt, men det er fx fordi, der er mulighed for at kode inden for et ark for sig, inden for en fil for sig, og inden for nogle andre moduler.

Hvis vi åbner for selve projektet på den der hedder fil 1 her, som jeg har åbent i baggrunden, og så det der hedder Microsoft Excel Objects. Den første hedder Ark 1 (test1). Bemærk, at herovre hedder det første ark i den her Excelfil test1 for brugeren, men objektet har også et navn – det hedder Ark1. Det er fordi, arket har to forskellige navne, alt afhængigt af hvordan man henvender sig til det i kodningssprog. Vi kommer nærmere ind på det senere.

Det er muligt t lave programmering og kode, der kun tilhører ark1 under dette modul eller dette objekt. Der findes et objekt pr. ark, og et objekt som hører til projektmappen, hvor der er mulighed for at programmerefor filen som helhed.

Så findes der det, der hedder forms, eller på dansk formularer. Her er der en, der hedder userform1, der ser således ud. Og der er der mulighed for at tilføre en række kontroller, fx knapper eller lister, som brugeren har mulighed for at vælge, og hvor man kan sætte en række funktioner op ud fra det.

Så er der det, der hedder modules. Modules er i princippet et sted, hvor man kan skrive en række koder, som kan snakke med hinanden og kan udføre en række funktioner.

Modulerne kan man sætte op, så nogle moduler har koder, som har nogle betsemte funktioner, og der er nogle regler for, hvordan koden i modulerne kan snakke med hinanden, så der er nogle ting, koderne kan snakkes ved internt om, og nogle ting, hvor koderne kan snakke sammen imellem moduler.

Jeg foreslår, at man laver moduler i forhold til hvilke funktioner, de har. Fx et modul til at automatisere og et modul til at fejlbehandle.

Der findes også det, der hedder class modules. Vi kommer ikke ind på dem i disse lektioner, men i princippet er det et spørgsmål om at skrive objekterne op fra bunden som VBA-objekter, som vi bruger som standard Excel VBA-objekter.

Så har vi egenskabsvinduet hernede. Hvis vi trykker på ark1, så får vi egenskabsvinduet op for Ark1. Her står der en række egenskaber, der tilhører arket. Vi går lidt mere i detaljer om disse senere. Men her kan man se, at navnet har Ark1, som der kan rettes i. Vi har fx mulighed for at rette det til ”test1”. Nu hedder arket test1, og også i parentes ”(test1)” for brugeren. Hvis der er nogen af de her vinduer, som projekt, egenskaber eller kodning, der mangler, kan de fremkomme ved at trykke på View-menuen, og trykke Code for at se kode, Project Explorer for at se projekter, og Properties Window for at se egenskaber.

Der findes også en Object Browser, som giver mulighed for at se en liste over de objekter, som der ligger under VBA, og de tilhørende medlemmer. Dvs. hvilke funktioner har hvert objekt. Det er noget, som kan være gavnligt, når man bliver rutineret i VBA, for at se hvilke muligheder man har for at lave funktioner ud for de forskellige objekter, som der findes i VBA.

Der er også en Insert menu, som gør det muligt at indsætte nye formularer, moduler eller Class Modules. Hvis vi trykker på indsæt UserForm, så har vi fx mulighed for at sætte en ny formular ind, der så kommer til at hedde UserForm2. Under formaterings-menuen (Format) har vi nu mulighed for at lave noget designmæssig formatering, hvilket typisk anvendes ttil formularer.

Debug-menuen bruger vi typisk til at, når vi skal debugge en kode. Det er som regel, når koden ikke rigtig fungerer, som vi ønsker, den skal fungere. Så kan vi se med debuggeren, hvor det går galt.

Så findes der Run-menuen, som vi kommer til at bruge i starten. Men når man bliver rutineret i VBA, bruger man den ikke så meget. Der er dog en af funktionerne i menuen, som vi kommer til at stifte bekendtskab med. Der er tre funktioner. Det er Run for at køre en sub eller en userform, hvilket er en kode. Det er Break, hvilket stopper en kode. Og det er Reset, hvilket genstarter en kode.

Disse ligger som regel også som knapper i toolbaren.

Der findes en genvej til at breake, som er rigtig god at stifte bekendtskab med. Da en kode nogle gange kan komme til at køre i ring. Det kommer vi nærmere ind på under afsnittet om ”løkker”, hvor man laver et loop. Dvs. at Excel kører en række kode igen og igen og igen. Og hvis der ikke er en definitiv stopfunktion under den løkke, altså et loop, så fortsætter koden bare med at køre, indtil man stopper Excel. Der er det noget bedre at stoppe koden i at køre i stedet for at skulle lukke Excel ned.

Til sidst findes der tools-menuen, som gennemgås kort her. Det er en række værktøjer, der ligger til selve VBA-editoren. Preferences er en af dem, som det er rigtig godt at kende. Hvis man fx gerne vil ghave nogle objekter – altså hvis man gerne vil snakke med nogle andre værktøjer, udover bare Excel, fx at man gerne vil have Excel til at snakke med Access – så bliver man nødt til at stille en reference på, hvilket gør, at Excel får et bibliotek af værktøjer, som kan bruges dertil.

Et eksempel, hvis man gerne vil snakke med Access, det er at man kan sæte Microsoft Office 4.0 Access databasen på. Det vil så give VBA mulighed for at snakke med nogle helt nye værktøjer, som kan bruges til at kommunikere med en Access-database. De eksisterer ikke somstandard, men skal sættes på på denne måde. Vi gennemgår dem ikke yderligere i detaljer her. Dette var blot et eksempel.

Endelig er der kodningsvinduet, hvor vi kommer til at skrive al vores kode under de forskellige objekter. Vi skulle nu gerne være klar til at skrive vores første kode.