Excel VBA

Den lette tilgang, og de ret hurtige svar retur. På den måde føler man, man kan få "udnyttet" tiden bedst muligt. 

Jeg kan også godt li' emnerne i øvelserne. De har været meget brugbare - så er det bare at få "overført" til ens egen daglig brug :-)

Tina Eriksen, Skandinavisk Service Partner

Excel VBA

Det har været rart at man selv kan bestemme tempoet og hvornår man laver opgaverne. Man kan også få hjælp til at få løst opgaverne anderledes, samt få hjælp til andre opgaver. Jeg synes også det har været sjovt at man ikke får det hele serveret, men skal søge lidt information selv.

Laila Jensen, Statens Serum Institut

Excel VBA

Jeg har gennemført kurset Excel VBA. Jeg var skeptisk overfor måden at lære på inden jeg gik i gang, men jeg må sige at min skepsis blev gjort til skamme. Lige fra første lektion følte jeg at jeg virkelig lærte noget.

Thors tilgang til materialet er perfekt. Gennem løbende øvelser får man lejlighed til at afprøve teorien i praksis.

Beder man om lidt hjælp, så kommer den lynhurtig – men det er kun et hint og så kan man selv finde ud af resten – det er perfekt for herved tvinges eleven til at tænke sig om – mon det kan bruges i folkeskolen også :).

Kurset er ALLE pengene værd og kan køres når man har tid og er motiveret. Holder man for lange pauser i undervisningen, så komme Thors pegefinger i form af en mail og så er det bare om at komme i gang igen :)

Jacob Madsen, Mettler-Toledo A/S

Excel VBA

Tak for et rigtigt godt og lærerigt kursus.

En af de store fordele ved kurset er, at man kan tage det i det tempo man ønsker og der er ikke noget tidspres.

Opgaverne er gode og udfordrene. Man kan selv, indenfor rammerne, bestemme hvor meget man vil gøre ud af det.

Beskrivelserne til opgaverne er lavet på en sådan måde, at der er også overladt lidt til ens egen fantasi, som jeg synes er en meget god ting.

Kurset har et rigtigt godt niveau, og materialet er godt lavet.

Underviseren ??? Ja, jeg ved ikke hvornår han sover.

Der går ikke lang tid efter man har sendt en opgave, til den er rettet, og altid med en god og konstruktiv kommentar. Også man får underviserens løsningsforslag.

Der er altid hurtig og god hjælp at hente, hvis man er gået i stå. Man får ikke bare løsningen, men et hint, så man kan komme videre.

Jeg vil varmt anbefale det til andre, og gør det !

Endnu engang tak for et godt kursus.

Med venlig hilsen

Peter Juul Jacobsen

Peter Juul Jacobsen, Mærsk Olie & Gas A/S

Excel VBA

Godt med muligheden for sparring med underviser og forslag til andre løsningsmetoder end mine egne - selvom mine også fungerede.

Godt med muligheden for ingen tidsbegræsning for kurset. Havde jeg - pga. arb. situation, brug for.

Anja Hansen, TDC

< >
Se flere referencer

De første VBA programmer

Vi skal til at skrive de første programmer, men før vi går i gang skal vi se lidt på det værktøj vi bruger når vi koder VBA - VBA Editoren. Den ser sådan her ud (kommer frem når du trykker ALT+F11):

 

Excel VBA kursus - det første VBA program - fjernundervisning

Billedet indeholder 6 vinduer som jeg har sat det op her:

  • Project- En oversigt de regneark der er åbne og den VBA kode der ligger i de åbne filer.
  • Properties- Et vindue, der skifter afhængigt af hvad man laver i "arbejdes området" (højre del af skærmen)
  • Book1 - Sheet3 (code)- Det er i sådan et vindue her vi skal skrive vores VBA programmer om lidt
  • Book 1 - Userform1 (userform)- En userform - sådan én skal vi lære meget mere om senere
  • Toolbox- Bruges sammen med userformen
  • Immediate- Et vindue, der kan bruges når man debugger sine programmer


Når man åbner et nyt regneark og trykker ALT+F11 ser VBA editoren sådan her ud:


For at komme til at skrive et program skal du højre klikke på "Microsoft Excel Objects" og vælge Insert | Module - så kommer det til at se sådan her ud:

Moduler er en slags kodekasser (nej ikke rodekasser!) så du kan strukturere dine programmer. Du kan i Properties vinduet skifte navnet på modulet. NU er vi ved at være klar til at skrive programmer!

Det er vigtigt, at du sørger for at skrive din kode i et modul - og ikke i Excel's egne objekter (dem skal vi bruge, når vi kommer til hændelser). Sørg for at dobbeltklikke på det modul du gerne vil skrive din kode i inden du går i gang med arbejdet.

Procedurer og funktioner

 

Der er to slags programmer vi kan skrive - procedurer og funktioner. En funktion minder om de funktioner du kender fra Excel som Sum(), Middel() etc. der kan bruges til at lave beregninger og returnere et resultat. En procedure returnerer ikke noget resultat, men kan også lave beregninger for os.

I nedenstående billede er der en funktion og en procedure - kan du regne ud hvad de laver?

Procedurer
Svarer til de makroer du tidligere har optaget. De står i makrobilledet, hvis du vælger Funktioner | Makro | Makroer...

Funktioner
Som tidligere nævnt virker funktioner som de øvrige funktioner du kender i Excel (Sum, Middel etc.) og du kan bruge VBA funktioner du selv har skrevet i regnearket. Hvis du vælger Indsæt | Funktion og finder kategorien Brugerdefineret så står din funktion der!

Tips og trix i VBA editoren

Automatisk fuldførelse

Når du skriver f.eks. sub HelloWorld og trykker på enter så skriver vba editoren automatisk () og End Sub samt ændrer sub til Sub.

Det er derfor en god idé altid at skrive med små bogstaver - så vil du kunne se om det er ord VBA editoren genkender ved at den ændrer dem til at have stort begyndelsesbogstav.

Et trix mere i den kategori er når du skal skrive range kan nøjes med at skrive ra og trykke på CTRL + Mellemrum så giver VBA editoren dig en liste over ord den kender der begynder med ra. Vælg Range og tryk på TAB.

Egenskaber og metoder

Når man har skrevet navnet på et objekt bruger man et punktum til at adressere objektets metoder og egenskaber. Når du skriver Range("A1"). dukker der en liste over alle metoder og egenskaber til Range objektet op. Du vælger den metode eller egenskab du skal bruge fra listen (bemærk, at du kan skrive de første bogstaver i navnet og bladre i listen på den måde). Når du har fundet den ønskede metode eller egenskab trykker du TAB for at komme videre.

Dette er en rigtig god måde at lære de forskellige metoder og egenskaber at kende.

Hjælpe funktionen

VBA editoren har en rigtig god hjælpefunktion, som du kan få fat i ved at trykke på F1. Prøv at stille markøren i ordet Range og tryk F1 - du skulle så gerne få en side, der beskriver Range objektet.

Nyttige genvejstaster

 

CTRL+Mellemrum Auto fuldførelse
F1 Hjælp
F5 Kør makro
F8 Debug makro (kommer vi til senere)
ALT+F11 Start VBA editoren

Der er naturligvis mange flere genvejstaster, men disse er de vigtigste.

 

Formatering af VBA kode

Der er ingen regler for, hvordan man skal sætte sin VBA kode op, men jegg arbejder efter følgende principper, som jeg føler gør koden lettere at læse:

1) Jeg laver indryk efter linjer, der dækker flere linjer - dvs. efter Sub, If, Else, Select, Do, For (og der er sikkert flere, men det er dem jeg lige kan komme på nu)

2) Og rykker ud igen når jeg kommer til deres modpart End Sub, End If, End Select, Loop, Next.

Eksempel:

Sub FormateringAfKode
    Indryk til koden
    Og også næste linje
    
    If  et eller andet Then
        Og nyt indryk
        Og det gælder for alle linjer indtil
    End If
End Sub

3) Tomme linjer indsætter jeg kun når jeg går fra én del af koden til en anden.

4) Husk at bruge kommentarer

 

Lidt film

 

 

Når du har betalt for kurset får du adgang til øvelser til hver lektion. Og når du har fået godkendt din besvarelse får du desuden adgang til mine løsningsforslag med ekstra tips og trix.