Microsoft Excel XP - Makroer med VBA



Relaterede dokumenter
Indholdsfortegnelse Forord...8 Makroer samt aktivere Udvikler-fanen...10 Makrosikkerhed (Sikkerhedsindstillinger)...13

Hent filoplysninger fra billeder og filer

Skifte til Excel 2010

vil jeg blive mindet om det af VBA allerede mens jeg skriver koden, da der er tale om en såkaldt kompileringsfejl:

Åbn Paint, som er et lille tegne- og billedbehandlingsprogram der findes under Programmer i mappen Tilbehør. Åbn også Word.

Orddeling. Automatisk orddeling. Manuel orddeling. Word thoremil.dk. Vælg fanebladet [Sidelayout] Vælg [Orddeling] Markér Automatisk orddeling

Advanced Word Template Brugermanual

Huskesedler. Design og automatisering af regneark. Microsoft Excel 2013

Avanceret Excel Martin Simon. Forlaget TextMaster ISBN: E-bogsudgave Kopiering fra denne bog er ikke tilladt.

Skifte til PowerPoint 2010

Opret en Powerpoint præsentation automatisk med VBA

How to do in rows and columns 8

Tilpas: Hurtig adgang

Microsoft. fra Word 2003

Pivottabeller, diagrammer og databehandling. Underviser: Nina Kirkegaard Schou Mobil

Genvejstaster til Windows

Udforske kommandoer på båndet De enkelte faner på båndet indeholder grupper, og hver gruppe indeholder et sæt relaterede kommandoer.

Sådan starter du PowerPoint vha. Start-knappen

Brugerdefineret menuer i Access

OFFICEUNIVERSET.DK. ^ + SKIFT + ; (semikolon) Formellinje - skift mellem udvid og fold CTRL + SKIFT + U

ViKoSys. Virksomheds Kontakt System

Skifte til OneNote 2010

Billedvideo med Photo Story

INDHOLDSFORTEGNELSE. INDLEDNING... Indledning. KAPITEL ET... Kom videre med Excel. KAPITEL TO Referencer og navne

Kursusbeskrivelse Microsoft Excel Grundkursus

Word-1: Tag fat på Microsoft Word (XP)

Gem dine dokumenter i BON s Content Management System (CMS)

En lille vejledning til lærere og elever i at bruge matematikprogrammet WordMat (begynderniveau)

Udviklingstab, og hvordan man sætter instilling i dansk office 2007 som jeg bruger herhjemme.

Huskesedler. Fletning af dokumenter til masseproduktion

Genveje i Excel. Herunder ser du en liste over nyttige genveje i Excel, skimt den igennem og se hvilke der er vigtigst for dig.

Kapitel 8 Tilpasning af OpenOffice.org:

Indlæsning af licensfil og oprettelse af regnskab

Genvejstaster til Windows

portal.microsoftonline.com

Genveje. Åben undermenuen til højre for menupunktet. Marker menupunktet under det markerede. Udfør menupunktets handling Alt Tast Åben menu Alt Tast

EXCEL 2010 KURSUSHÆFTE TRIN 1 EXCEL 2010 KURSUSHÆFTE TRIN 1

Start Excel Du skal starte med at åbne Excel. I Excel åbner du herefter en tom projektmappe.

Huskesedler. Microsoft Excel 2010

Windows Vista 1. Side 1 af 10

Kapitel 6 Events i C#

Oktober Dokumentpakker

Kapitel 4 Løkker i C#

Huskesedler rapportskrivning Grundforløb

Modul 2 - Computerens drev og tekstbehandling. Computerens netværksdrev og mappen dokumenter

Skifte til Outlook 2010

Arbejd videre med statistik

Annemette Søgaard Hansen/

Vistemmernu. Et webbaseret værktøj udviklet af Programdatateket i Skive. programdatateket@viauc.dk Web:

MS Visual Studio Basic En kort vejledning

Filer og Mapper. Filer. Mapper

Skifte til Access 2010

SÅDAN BRUGER DU REGNEARK INTRODUKTION

Installation Windows 7

Manual til Dynamicweb Februar 2010

Sådan opretter du en elektronisk aflevering

Skrifttype og størrelse

Brugervejledning til Avery Wizard for Microsoft Office. Dansk version til -

WEB-DIRECT Brugerguide Eksportfunktion i WEB-DIRECT

5.0 Velkommen til manualen for kanalen HTML-grab Introduktion til kanalen HTML-grab kanalside Hvad er et spot?

Sådan gør du Microsoft Excel 2013

Indhold. Jennie Mathiasen. Google Drev

VUC IT Niveau G. Drev Mapper Filer

Startvejledning. Microsoft PowerPoint 2013 ser anderledes ud end tidligere versioner, så vi lavet denne guide for at gøre din læreproces nemmere.

Bogfunktionen eller Slægtsbogen i FTM

Åben Power Point... Side 2. Ny præsentation... Side 2. Dias layout... Side 2. Temaer... Side 3. Gem dit eget tema... Side 3. Diasmaster...

Microsoft PowerPoint 2010

Huskesedler. Præsentation af tal i regneark. Microsoft Excel 2010

JØRGEN KOCH Excel 2013 for alle

Kom i gang med... Kapitel 12 Arbejde med skabeloner. OpenOffice.org

Vejledning til udskrivning af etiketter/labels og konvolutter i Blåt Medlem

Easy Guide i GallupPC

Sådan gør du Microsoft Word 2013

Daglig brug af JitBesked 2.0

Styresystemet er den del af softwaren, der sammenkæder hardware og brugerprogrammer, således at de kan arbejde sammen.

Stifinder er et program til navigere rundt med i dine mapper (biblioteker) på din computers Harddisk.

Genveje til Excel på MAC

Sæt altid USB stikket i computeren, før du installerer softwaren. (Gælder ikke i XP) Tilslut USB adapteren til en ledig USB port på din computer

GIS indlæsning af kreditorer og betalingsform. Brugervejledning 1.0

Opstart. I gang med Dreamweaver. Læs mere om...

Kapitel 3 Betinget logik i C#

Indledning. På de følgende sider vises, primært i tegneserieform, lidt om mulighederne i PC-AXIS for Windows.

Google Apps. Lær at oprette, organisere, dele og slette dokumenter. Udarbejdet af PLC, version 2013!!!!!!! Side 1 af 9

Brugermanual. Outlook Web Access for Exchange Server 2003 (OWA 2003) Udarbejdet af IT-afdelingen 2006

SPAM-mails. ERFA & Søren Noah s A4-Ark Køber varer via spam-mails. Læser spam-mails. Modtager over 40 spam-mails pr. dag. Modtager spam hver dag

Heldigvis har systemet indbygget en hjælp, som man kan benytte, hvis denne vejledning ikke berører det opståede problem.

Sikkerhedskopiering. Sikkerhedskopiering til harddisk.

Opstart. I gang med Dreamweaver. Læs mere om... Generelle bemærkninger. Hvilken skærmopløsning? OBS

Brug af Word til matematik

Peter Kragh Hansen. Microsoft Outlook 2013 DK. ISBN nr

Excel-1: kom godt i gang!!

Søren Christiansen

Undervisning Version 1.0 redigering af billeder til hjemmesiden

HJÆLP TIL IGANGSÆTNING AF WINKOMPAS 3

Manual til hjemmeside i Typo3

Vejledning. Excel-skabelon. til oprettelse af kalendere. Oversigtskalender_Skabelon_Revideret 05_06.xls

AluData: Regneark og brevfletning i LibreOffice. AluData: Regneark og brevfletning i LibreOffice

Indhold. Selandia-CEU Side 2

Et oplæg med PowerPoint bliver til.

Transkript:

Microsoft Excel XP - Makroer med VBA

Microsoft Excel XP - Makroer med VBA Microsoft Excel XP - Makroer med VBA til Windows 9x / Windows NT / Windows 2000 / Windows XP. Version: 2002 Copyright 2003 by F.M.T. F.M.T. Rymarksvej 79 2900 Hellerup Telefon: 70 20 31 40 Telefax: 39 27 16 61 E-mail: morley@morley.dk WEB-sted:www.morley.dk Materialet er udarbejdet af F.M.T. ved brug af Word 2002. F.M.T. er registreret som Microsoft Certified Professional (MCP), hvilket dokumenterer vores produktkendskab. Skærmbilleder er "fanget" med SnagtIt 6.1. Layout og grafisk tilrettelæggelse af F.M.T. Materialet er udskrevet på en Postscript Laserprinter i 1200 DPI. Enhver form for automatisk/manuel hel eller delvis gengivelse eller mangfoldiggørelse af dette materiale, uden skriftlig samtykke fra F.M.T., er forbudt efter gældende lov om ophavsret. 2003 F.M.T. Excel XP VBA.doc Ver. 2

Microsoft Excel XP - Makroer med VBA Konventioner anvendt i dette materiale [F1] Tast på funktionstasten F1. [Alt]+[Ctrl] Hold tasterne Alt og Ctrl nede på samme tid. [Alt]+[Ctrl]+[m] Hold tasterne Alt og Ctrl nede og tast m. [Dobbeltklik] [Højreklik] Redigér/Klip ENTER HOME [Alt]+[R]+[K] Dobbeltklik med venstre musetast. Klik med højre musetast. Aktivér menuen Redigér og derefter undermenuen Klip. Tast linjeskift (Enter-tasten bør ikke bruges). Tast Home. Kombinationstaster - aktiverer typisk en menu. Når du ser symbolet for en hånd, skal du være aktiv vises kun i øvelserne. Navigeringstaster - anvendes til at flytte/navigere rundt i et dokument. Excel XP VBA.doc Ver. 2 2003 F.M.T.

Microsoft Excel XP - Makroer med VBA 2003 F.M.T. Excel XP VBA.doc Ver. 2

Microsoft Excel XP - Makroer med VBA Indholdsfortegnelse Indholdsfortegnelse 1. Indledning... 11 2. Kursets indhold... 13 Øvelserne til kurset... 13 Fuld installation af Microsoft Excel XP... 14 3. Definition af makroer... 15 Hvornår skal man bruge en makro... 15 Forbered en makro... 16 Hvem skal konstruere makroer... 17 Forudsætninger for at anvende makroer... 17 Hvad nu hvis?... 17 Gem makroen!... 18 Dokumentation af makroer... 18 Begrænsninger i makroer... 18 Anvend den elektroniske hjælpefunktion... 19 Andre hjælpemidler... 19 4. Hvorfor anvende makroer?... 21 Hvorledes anvendes Excel?... 22 5. Programmering... 23 Forudsætning for at programmere... 23 Objekt programmering... 23 Egenskaber, Metoder og Hændelser... 24 Objektoversigten... 25 Biblioteker og projekter (Libraries)... 25 Klasser (Classes)... 26 Medlemmer af klassen (Members)... 26 Excel XP VBA.doc Ver. 2 2003 F.M.T.

UIndledning Microsoft Excel XP - Makroer med VBA 6. Oprettelse af makroer... 27 Makroens forskellige elementer... 27 Makroer kan kategoriseres... 28 Automatisering... 28 Program... 28 Applikation... 28 Makroer prioriteres således... 29 Hvor skal makroer gemmes?... 29 Den aktive projektmappe:... 30 En ny projektmappe:... 30 Den personlige makroprojektmappe:... 31 7. Visual Basic arbejdsvinduet... 33 Programkodevinduet... 33 Egenskabsvinduet... 34 Projektvinduet... 34 Værktøjslinjerne i VBA vinduet... 35 8. Visual Basic og VBA... 39 Visual Basic 6.0 eller Visual Basic NET 7.0... 39 Visual Basic for Applications... 39 Procedurer... 40 Sub Procedure... 40 Function Procedure... 40 Property Procedure... 41 2003 F.M.T. Excel XP VBA.doc Ver. 2

Microsoft Excel XP - Makroer med VBA Indholdsfortegnelse 9. Sproget i Visual Basic... 43 Teknisk definition... 43 Controls... 43 Hændelse (Events)... 44 Metode (Methods)... 44 Objekt (Object)... 44 Procedure (Procedures)... 44 Egenskab (Properties)... 45 Projekt (Project)... 45 Excel objekter... 46 Referencer til objekter... 50 Objekter i samlinger... 50 Enkeltstående objekter... 50 Egenskaber og metoder for en samling... 51 Eksempler på egenskaber i Excel... 51 Eksempler på metoder i Excel... 52 Egenskaber og metoder... 52 10. Variabler... 55 Erklæring af variabler... 55 Objektvariabler... 58 Variables levetid... 59 Nøgleord... 60 Dim... 60 Private... 60 Static... 60 Public... 61 Eksempel på brug af en Lokal og Static variabel... 61 Fejlvenlig kode... 62 Sådan tvinges bestemt typeerklæring... 62 Typeerklæringstegn... 63 Ubestemt erklæring af variabel... 63 Bestemt erklæring af variabel... 64 Excel XP VBA.doc Ver. 2 2003 F.M.T.

UIndledning Microsoft Excel XP - Makroer med VBA Indstillingen eksplicit skrives således:... 65 Tilføje data til en variabel... 65 11. Betingelser og løkker... 67 Betingelser... 67 Hvad er en betingelse... 67 If Then Else betingelse... 67 If Then ElseIf betingelse... 69 And og Or... 69 Select Case... 70 Løkker... 71 For Next... 71 For Each Next... 71 Do Loop... 72 While Wend... 73 Gentagelse af sætninger mens en betingelse er sand... 73 12. Dokumentation af makroer... 75 13. Arbejde med tekst... 77 ANSI-tegnsæt... 77 ASCII-tegnsæt... 77 Arbejde med tekst i Excel... 78 Funktion til beregning af alder... 80 Funktion til beregning af Køn... 81 Finde et filnavn ud fra søgesti og filnavn... 81 Instr()... 82 Mid()... 82 Len()... 82 InstrRev()... 82 2003 F.M.T. Excel XP VBA.doc Ver. 2

Microsoft Excel XP - Makroer med VBA Indholdsfortegnelse 14. Matricer (Arrays)... 83 Index... 83 Arrays i 2 dimensioner... 84 Definition af Type... 84 Hente en matrice fra en ekstern tekstfil... 88 Funktionen Input... 89 Indsæt eller tilføj tekst i en fil... 91 Tilstand Write... 91 Tilstand Append... 91 15. Sub-rutiner og brugerdefinerede funktioner... 93 Sub-rutiner... 93 Kald af Sub-procedurer med mere end ét argument... 93 Brugerdefinerede funktioner... 94 Brug af parenteser ved kald af funktioner... 95 Overførsel af navngivne argumenter... 95 Kald af en procedure med samme navn... 96 16. Regnefunktioner... 97 Hvorfor skal man oprette sine egne regnefunktioner?... 97 En funktion uden argumenter... 97 En funktioner med et argument... 98 En funktion med to argumenter... 99 En funktion med et område som argument... 100 En funktion med valgfri argument... 101 17. I gang med VBA... 103 Navngivning af makroer... 103 Sådan indspilles en makro... 103 Indspilning med relativ cellereference... 108 Afspil en makro... 109 Tilføj en makro til værktøjslinjen... 109 Sådan virker makroindspilningen... 112 Sådan gøres makroen hurtigere... 114 Deaktivér skærmopdateringer... 115 Excel XP VBA.doc Ver. 2 2003 F.M.T.

UIndledning Microsoft Excel XP - Makroer med VBA 18. Manuel konstruktion af makroer... 117 Aktivering af specifik fane i et regneark... 117 Sumformel for areal... 117 Absolut cellereference... 117 Relativ cellereference... 117 Marker en hel kolonne... 118 Indsæt søgesti i sidefod... 118 Udføre en handling på flere celler med en løkke... 119 Udvide Excels funktionalitet... 119 Slette formler i et ark... 121 Slet formler i område... 121 Anmod bruger om en værdi... 122 Indsæt en værdi fra en InputBox i regnearket... 123 Inputbox... 124 InputBox Function... 124 InputBox Method... 124 Vis besked i Statuslinjen... 125 Vis besked på skærmen... 125 Meddelelsesboks med flere knapper... 126 Udfør handling når Excel startes... 126 ThisWorkbook... 129 Objektet ThisWorkbook... 129 Oprette kode i ThisWorkbook... 130 Egenskaben ThisWorkbook... 131 Erklære flere variabel... 132 Skrive kode som ikke kan vises på én linje... 132 19. Excel dialogbokse... 133 Brug af samlingen Dialogs... 134 Hvad hedder den indbyggede dialogboks... 135 2003 F.M.T. Excel XP VBA.doc Ver. 2

Microsoft Excel XP - Makroer med VBA Indholdsfortegnelse 20. Opret Userforms... 137 Sådan oprettes en UserForm... 137 Sådan omdøbes en UserForm... 137 Sådan indsættes et kontrolelement... 138 Sådan flyttes et kontrolelement... 139 Sådan ændres størrelsen på elementet eller formularen... 140 Sådan aktiveres en UserForm... 140 Sådan aflæses værdier fra en UserForm... 141 Sæt egenskaber for en UserForm... 146 21. En simpel skabelon... 147 22. Fejlfinding... 155 Sådan tester du et udtryk... 155 Breakpoints... 160 23. Oprette egne værktøjslinjer... 163 FaceID... 166 OnAction... 166 Excel XP VBA.doc Ver. 2 2003 F.M.T.

UIndledning Microsoft Excel XP - Makroer med VBA Øvelse 1... 169 Øvelse 2... 173 Øvelse 3... 175 Øvelse 4... 179 Øvelse 5... 183 Øvelse 6... 187 Øvelse 7... 189 Øvelse 8... 191 Øvelse 9... 193 Øvelse 10... 195 Øvelse 11... 197 Øvelse 12... 199 Øvelse 13... 201 Øvelse 14... 207 Øvelse 15... 209 Øvelse 16... 215 Øvelse 17... 219 Ekstraøvelse 1... 221 Ekstraøvelse 2... 225 Ekstraøvelse 3... 227 Ekstraøvelse 4... 231 Ekstraøvelse 5... 233 Indeks... 235 2003 F.M.T. Excel XP VBA.doc Ver. 2

Microsoft Excel XP - Makroer med VBA UIndledning 1. Indledning Vi byder dig velkommen på kursus i Makroer med VBA programmering i Excel 2002. Kurset har til formål at gøre dig fortrolig med programmering under Excel, således at du på en let og nem måde kan udføre de rutiner, som dit arbejde kræver. Forudsætninger For at kunne opnå det optimale udbytte af denne undervisning forudsættes det, at du kender de grundlæggende begreber omkring anvendelsen af en PC, samt at du er fortrolig i anvendelsen af Windows brugerfladen, det vil sige Windows 9x eller Windows XP. Der kræves kendskab til programmet, på niveau med videregående kursus i Microsoft Excel 97, Excel 2000 eller Excel XP. Kursushåndbogen Formålet med denne kursushåndbog er dels at understøtte undervisningen på kurset, dels at give dig mulighed for repetition af kursets indhold og endelig at skabe et arbejdsredskab, som du kan bruge i det daglige arbejde. Kursusbogen kan, med dine egne notater, blive dit vigtigste opslagsværk, mens du er nybegynder. Kursushåndbogen er ikke en erstatning for den manual som medfølger programmet. Efter kursus Når du kommer hjem fra kurset, er det anbefalelsesværdigt at sætte tid af til opfølgning. Det forøger udbyttet af kurset. Gå ikke i gang med større opgaver end du magter. Konsultativ undervisning Skulle du have brug for assistance til f.eks. løsning af større opgaver eller måske konsulentbistand i en opstartsfase, står vores konsulentgruppe til rådighed. Vi kan hjælpe indenfor alle områder vedrørende brugen af standard Pc-programmer, og bidrager gerne med vor ekspertise på et vilkårligt tidspunkt i et projektforløb. Er vi med fra starten, får du naturligvis det største udbytte. Excel XP VBA.doc Ver. 2 2003 F.M.T. 11

U Kursets indhold Microsoft Excel XP - Makroer med VBA 2. 12 2003 F.M.T. Excel XP VBA.doc Ver. 2

Microsoft Excel XP - Makroer med VBA U Kursets indhold Kursets indhold Dette undervisningsmateriale omfatter følgende områder omkring anvendelsen af Excel. Definition af makroer Hvorfor anvende makroer? Programmering Oprettelse af makroer Visual Basic arbejdsvinduet Visual Basic og VBA Sproget i Visual Basic Variabler I gang med VBA Manuel konstruktion af makroer Betingelser og løkker Dokumentation af makroer Arbejde med tekst Matricer (Arrays) Sub-rutiner og brugerdefinerede funktioner Regnefunktioner Excel dialogbokse Opret Userforms En simpel skabelon Fejlfinding Det anbefales, at du skimmer materialet igennem sammen med instruktøren. Materialet er opbygget med en teoretisk del og en øvelsesdel. Øvelserne til kurset Alle øvelserne viser undervejs en forklaring til de handlinger og skærmbilleder, du opretter. Det anbefales kraftigt, at du læser øvelsen, inden du løser den, så du har et indtryk af, hvad du skal frem til. Excel XP VBA.doc Ver. 2 2003 F.M.T. 13

U Kursets indhold Microsoft Excel XP - Makroer med VBA Der er flere øvelser i materialet, end du kan nå på et 2 dages kursus. Dette skyldes, at der kan være kursister, som tidligere har arbejdet med programmering i Visual Basic. Udfør de øvelser du kan nå og løs eventuelt de manglende øvelser, når du får tid. Jo hurtigere du kaster dig ud i øvelserne, jo hurtigere lærer du Excel at kende, gennem learning by doing. Fuld installation af Microsoft Excel XP Du skal have en fuld installation af Microsoft Excel XP, før du kan opnå det fulde udbytte af dette kursus. I modsat fald vil du ikke have adgang til programmeringsværktøjerne eller hjælpefilen til VBA. 14 2003 F.M.T. Excel XP VBA.doc Ver. 2

Microsoft Excel XP - Makroer med VBA UDefinition af makroer 3. Definition af makroer En makro består af en række handlinger (kommandoer), som udføres, når du afspiller makroen. Makroer oprettes typisk til at gentage ofte anvendte handlinger ved hjælp af klik med musen, ved en genvejstast eller fra menuen. Herunder følger nogle eksempler på makroer, du kan oprette: En makro, som aktivérer stavekontrollen, når du udskriver dokumentet. Først startes stavekontrollen, derefter udskrives dokumentet. En makro, som tæller antallet af sider i et dokument, og derefter indsætter dette sidetal + 1 i en telefaxforside. En ændret udgave af menuen Filer/Åbn, som automatisk skifter til biblioteket C:\MINE REGNEARK, når dialogboksen Filer Åbn vises. Det er nemt at oprette makroer med indspilningsfunktionen i Excel. Når du starter indspilningen, indspilles alle de handlinger, du udfører i Excel. Handlingerne gemmes i en makro, så de senere kan afspilles. Mere avancerede makroer kan oprettes i Excel med makroprogrammeringssproget Visual Basic for Applications, herefter benævnt VBA. Du kan gøre dine makroer globale, du kan gemme dem i dit dokument, eller du kan vælge at gemme dem i skabeloner. Makroer kan tildeles en tastekombination, indsættes i værktøjslinjen eller indsættes som et menupunkt, så de bliver nemme at anvende. Hvornår skal man bruge en makro En makro bør anvendes, når en arbejdsrutine udføres eller skal udføres flere gange. Dette kompendium viser forskellige eksempler på makroer. Disse makroer kan enten anvendes efter de viste eksempler eller give inspiration til nye idéer. Excel XP VBA.doc Ver. 2 2003 F.M.T. 15

UDefinition af makroer Microsoft Excel XP - Makroer med VBA Forbered en makro Konstruer dine makroer så de kan forstås af andre. Indsæt så vidt muligt en kommentar eller beskrivelse om de enkelte instruktioner. Dermed bliver det lettere, ikke kun for dig men også for andre, på et senere tidspunkt at tilføje nye instruktioner eller eventuelt at redigere instruktionerne i makroen. Undgå lange makroinstruktioner, derved bliver makroen hurtigere at afvikle. Anvend sub-rutiner frem for at henvise til andre makroer. Vær opmærksom på at konstruktion af makroer kan tage længere tid end forventet. Afsæt tid til makroprogrammeringen og sørg for at starte på et tidspunkt, hvor du ikke bliver forstyrret. Konstruktion af makroer består af flere niveauer, nemlig: Skitsering af problemstilling. Mulige løsninger. Konstruktion af makroen. Afspilning af makroen. Fejlrettelse og trinvis afspilning. Tag højde for det uforudsete. Indsæt bemærkninger og kommentarer i makroen. Indsæt makroen i menuen eller på værktøjslinjen. Konstruer en hjælpefil. En perfekt makro er andet og mere end blot at indspille og afspille makroen. Så længe en makro kun anvendes af "konstruktøren", er det op til "konstruktøren" at afgøre, hvor effektiv makroen skal være. Når en makro derimod skal anvendes af andre, er det imidlertid en god idé at skabe et perfekt arbejdsmiljø. Nemlig et miljø, som ikke udsætter brugeren for uforudsete hændelser. 16 2003 F.M.T. Excel XP VBA.doc Ver. 2

Microsoft Excel XP - Makroer med VBA UDefinition af makroer Hvem skal konstruere makroer Det ideelle vil altid være, om alle kan konstruere deres egne makroer. Desværre er dette imidlertid sjældent muligt, blandt andet fordi det ikke er alle, som interesserer sig for programmering, og nogle brugere besidder ikke de fornødne kundskaber til at kunne programmere i VBA. Hvis man i en virksomhed er mange, som anvender Excel, kan det anbefales, at man udvælger én eller to brugere, som skal stå for programmering af makroer. Der findes typisk altid en eller flere brugere, som synes, at programmering er sjovt, sådanne brugere bør tildeles ansvaret for makroprogrammering. Forudsætninger for at anvende makroer Den eneste forudsætning, som kræves for at kunne anvende makroer opbygget i Excel, er, at man er rimelig fortrolig med programmets standardfunktioner. Tip! Makroer består i princippet af en række handlinger, som svarer til de indbyggede funktioner i Excel. Disse Excel-funktioner udløses imidlertid ikke på den traditionelle måde, med dialogbokse og lignende, men af de tilsvarende VBA-handlinger. Et grundigt kendskab til Excel giver en bedre forståelse for den programmering, som finder sted ved hjælp af VBA. Det ses ofte, at brugere konstruerer lange og komplekse makroer, hvor den ønskede handling kunne være udført ved en enkelt Excelkommando. Hvad nu hvis? "Hvad nu hvis" situationer kan lige såvel opstå under en makroafspilning som under "normal" anvendelse af Excel. NB! Når du programmerer en makro, bør du tage højde for "Hvad nu hvis" situationer. En "Hvad nu hvis" situation kan for eksempel være, at du i makroen ubevidst henviser til en fil eller en mappe, som ikke eksisterer på "brugerens" computer. En sådan situation vil vise en fejlmeddelelse på skærmen. Excel XP VBA.doc Ver. 2 2003 F.M.T. 17

UDefinition af makroer Microsoft Excel XP - Makroer med VBA Undgå ligeledes at konstruere makroer, som er hukommelseskrævende (udløser en hukommelseskrævende funktion), fordi den tilgængelige hukommelse ikke er ens på alle computere. En hukommelseskrævende funktion er blandt andet, når man formaterer hele rækker og kolonner i et regneark, til trods for at man kun skal anvende en lille del af regnearket. Gem makroen! Gem makroerne der hvor de skal anvendes. Hvis en makro skal benyttes i alle dokumenter, uanset dokumenttype, bør den gemmes i PERSON.XLS. Hvis en makro kun skal anvendes i en bestemt dokumenttype, bør den gemmes i den pågældende skabelon. Dermed undgår du en unødvendig stor PERSON.XLS. Du kan for eksempel oprette og tilknytte en kørsel-makro, som kun kan anvendes, når du arbejder med kørselsregnskaber. Dokumentation af makroer Hvis du programmerer makroer, som andre skal anvende, bør du dokumentere makroerne. Det er en god idé at udfærdige en kort vejledning i brugen af makroen, og eventuelt hvorledes makroen installeres se kapitlet Dokumentation af makroer på side 75. Begrænsninger i makroer NB! Tip! Når du konstruerer makroer, vil der opstå tilfælde, hvor du støder på visse begrænsninger. Betinget af de funktioner du indsætter i en makro, vil du til tider støde på tilfælde, hvor en makro ikke kan afspilles (testes) i Visual Basic-vinduet. Når sådan en situation opstår, skal du blot oprette et nyt regneark og derefter afspille makroen eller eventuelt placere vinduerne side om side, så du kan følge afspilningen af makroen. 18 2003 F.M.T. Excel XP VBA.doc Ver. 2

Microsoft Excel XP - Makroer med VBA UDefinition af makroer Anvend den elektroniske hjælpefunktion Excel indeholder en elektronisk hjælpefil omkring Visual Basic programmeringssproget. Du kan kopiere makrokoder fra hjælpefilen direkte ind i et kodevindue, hvorefter du kan bygge videre på koden. Hermed opnår du adgang til en lang række færdige eksempler, som ofte kan anvendes efter mindre tilpasninger. Andre hjælpemidler Når du når det stadie, hvor den indbyggede hjælpefunktion ikke længere er tilstrækkelig, kan du supplere din viden fra forskellige amerikanske bøger, som dybtgående beskriver anvendelsen af Visual Basic for Applications, blandt andet Excel XP Macro & VBA Handbook fra forlaget SYBEX og/eller Office XP Visual Basic Programmers Guide fra Microsoft Press. Excel XP VBA.doc Ver. 2 2003 F.M.T. 19

UDefinition af makroer Microsoft Excel XP - Makroer med VBA 20 2003 F.M.T. Excel XP VBA.doc Ver. 2

Microsoft Excel XP - Makroer med VBA UHvorfor anvende makroer? 4. Hvorfor anvende makroer? Hvis du har arbejdet længe med Excel, kender du formentlig til anvendelsen af Typografier. Autokorrektur. Indsæt Funktion. Gå til speciel. Skabeloner. Du kan oprette typografier, så du hurtigt opnår det ønskede layout på dit dokument. Du anvender Autokorrektur, til hurtigt at indsætte hele sætninger eller for løbende at korrigere dokumentet for stavefejl. Du kan anvende Indsæt Funktion til hurtigt at oprette komplekse formler. Du kan anvende Gå til speciel til hurtigt at navigere rundt i dokumentet. Du kan oprette skabeloner som et Skelet til, hvorledes dine dokumenter skal se ud. Du kan med ovennævnte værktøjer udføre en høj grad af automatisering. Måske endda så meget, at du ikke behøver at anvende makroer. Det er unødvendigt at anvende en damptromle til at knække en nød således er det også med Excel. Anvend de værktøjer du har for hånden. De er alle glimrende i deres funktioner og har alle specielle formål, også selvom du endnu ikke har lært dem alle at kende. Når du kender Excel, i programmets fulde udstrækning, kan du i de situationer, hvor du mener, du er stødt på en barriere, begynde at anvende makroer. Excel XP VBA.doc Ver. 2 2003 F.M.T. 21

UHvorfor anvende makroer? Microsoft Excel XP - Makroer med VBA Hvorledes anvendes Excel? Du kan helt basalt anvende Excel som en regnemaskine. Det vil sige, du indtaster en række tal, som du beregner. Cellereferencer og opdateringer af resultater betyder ikke det store for dig. I den modsatte ende af skalaen kan du tilpasse din version af Excel, så du ved et klik med musen opretter det dokument, du ønsker. De fleste brugere anvender Excel et sted midt mellem disse to yderpunkter. De lærer gradvis Excel at kende ved at forske i programmet. Når et værktøj er på plads, begynder de at undersøge mulighederne med det næste værktøj. Efterhånden begynder de at forstå og anvende typografier, analyseværktøjerne og skabeloner. De fleste brugere (næsten 75%) forstår imidlertid ikke den verden af muligheder, som programmering åbner for. I de fleste tilfælde fordi de ikke har tid til at lære at programmere, eller fordi de tror, det er svært. Dette materiale vil vise dig, at det ikke er svært at programmere makroer i Excel. Du vil i materialet se en række forskellige muligheder, som du kan bygge videre på. Det er kun din egen nysgerrighed, som sætter begrænsningen. 22 2003 F.M.T. Excel XP VBA.doc Ver. 2

Microsoft Excel XP - Makroer med VBA UProgrammering 5. Programmering Forudsætning for at programmere For at kunne programmere i VB(A) kræves to forudsætninger 1. Du skal være i stand til at anvende den indbyggede hjælp. 2. Du skal tænke logisk. Logisk tænkning kan beskrives således: For at kunne udføre en opgave, skal du på forhånd vide hvorledes du vil løse opgaven. Programmering foregår efter de samme principper du fortæller programmet hvorledes det skal virke. Er du ikke i stand til at definere de metoder og rutiner du vil anvende, kan du ikke forvente at dit program vil være i stand til at løse opgaven. Kan du eksempelvis fortælle en blind person, hvordan vedkommende kommer fra Rådhuspladsen i København, til Københavns Hovedbanegård. Opgaven er nem at udføre, hvis du selv hjælper vedkommende på vej. Hvis du derimod skal fortælle, hvordan personen på egen hånd kommer frem (uden at blive kørt over, uden af falde osv.) er opgaven vanskeligere. Har du prøvet at vente på dine gæster. Pludselig ringer telefonen, og de fortæller at de står på busholdepladsen i din by, men de kan ikke finde dit hjem? En sådan situation skyldes oftest, at den der har givet instruktionen (programmøren) har overset eller glemt nogle vigtige detaljer. Programmering foregår ved hjælp af logiske instruktioner. Objekt programmering Den almene opfattelse af, hvad et objekt er, er at det kan opfattes med en af de menneskelige sanser oftest kan man røre ved objektet eller se det. Lige så ofte kan man ændre på objektet. Excel XP VBA.doc Ver. 2 2003 F.M.T. 23

UProgrammering Microsoft Excel XP - Makroer med VBA I Edb-programmer kan man ikke røre ved objekterne, men man kan se objekterne. Du kan eksempelvis se et afsnit i Word. Hvis du indsætter tekst, sletter ord eller ændre skriften i afsnittet, så har du foretaget en ændring på det objekt som kaldes for en Paragraph. Det er imidlertid ikke alle elementer i et Edb-program som kan ændres. Maksimer og Minimer knapperne som vises i øverste højre hjørne er objekter men det er ikke objekter som du kan ændre. Du kan ikke gøre dem større eller mindre, eller skifte farve på dem (medmindre du ændre Windows skærmfarver). Når du programmere, kan du ændre et objekt på tre måder: 1. Du kan ændre objektets egenskaber (Properties). 2. Du kan få objektet til at udføre en handling, ved at aktivere en metode (Methods) som er knyttet til objektet. 3. Du kan definere en procedure som udføres når en given hændelse (Events) indtræffer. Egenskaber, Metoder og Hændelser Hvis ovenstående skal omskrives til daglig tale, kan vi associere det med en Computer. Du kan beskrive en Computer som en helhed (et enkeltstående objekt), hvor du typisk vil refererer til prisen, farven, årgangen og så videre eller som en samling af objekter (collection), hvor du typisk beskriver tastatur, skærm, mus, CPU og så videre disse enheder kalder man for computerens egenskaber. Du kan anvende computeren til at skrive breve eller til at beregne budgetter dette er de metoder man forbinder med en computer. Når du starter computeren, så trykker du på Tænd-knappen, hvorefter computeren automatisk begynder at indlæse styresystemet. Denne hændelse sker helt automatisk. De objekter som indgår i samlingen (collection) af din computer, har deres egne egenskaber, metoder og hændelser. Eksempelvis har et CD-ROM drev forskellige egenskaber, blandt andet læsehastigheden og overførselshastigheden. CD-ROM drevet reagerer på metoden Indsæt CD / Udtag CD. 24 2003 F.M.T. Excel XP VBA.doc Ver. 2

Microsoft Excel XP - Makroer med VBA UProgrammering Hvis du indsætter en CD som har en AUTORUN.INF fil, så vil Cd en automatisk blive afspillet det vil sige at hændelsen Play automatisk indtræffer. Objektoversigten Du kan anvende Objektoversigten til at hente hjælp omkring objekter, hændelser, metoder og egenskaber. Objektoversigten åbnes med [F2], fra menuen View/Object browser eller fra værktøjslinjen. Figur 1 Listen All Libraries viser en oversigt over de biblioteker og projekter som er tilgængelige fra det aktive projekt. Du vil ikke se biblio- Biblioteksoversigt Objektklasser Egenskaber Hændelse Metode Beskrivelsevinduet Du kan højreklikke på et objekt og aktivere hjælpen fra genvejsmenuen. Du ser følgende i Objektoversigten: Biblioteker og projekter (Libraries) Excel XP VBA.doc Ver. 2 2003 F.M.T. 25

UProgrammering Microsoft Excel XP - Makroer med VBA teket for MSForms, før du har indsat en UserForm i dit projekt (UserForm1 oprettes som den første formular). Et Bibliotek (Library) er en fil som indeholder alle oplysninger om et objekt. Klasser (Classes) Listen Classes viser de objekter som er knyttet til det valgte Library. Hvis du i listen for Library skifter fra VBA til stdole vil du se at objekterne ændres i listen for Classes. Medlemmer af klassen (Members) Når du aktivere en klasse, eksempelvis Application, vil du i listen over Members se de egenskaber, hændelser og metoder, som er knyttet til den valgte klasse. Hvis en egenskaber viser en lille blå prik, er egenskaben standardværdien for det valgte objekt. Dette kompendium viser i de efterfølgende kapitler, hvorledes du arbejder med objekt-orienteret programmering. 26 2003 F.M.T. Excel XP VBA.doc Ver. 2

Microsoft Excel XP - Makroer med VBA UOprettelse af makroer 6. Oprettelse af makroer Figur 2 Makroer kan oprettes på to måder: 1. Automatisk (indspilning af handlinger) 2. Manuelt (indtastning af kode) Det anbefales, at du starter en makro med kommandoen Funktioner/Makro/Indspil ny makro. Du kan med indspilningen sikrer dig at din kode bliver korrekt. Makroens forskellige elementer En makro består af en begyndelse, en instruktion og en slutning. Figur 2 viser kodevinduet, som anvendes til lagring af makrokoder. Makroens begyndelse starter med udtrykket Sub (herefter vises makronavnet). Makroens slutning starter med udtrykket End Sub. Området mellem disse to linjer anvendes til programkode. I nedenstående billede er der ikke oprettet nogen kode. Excel XP VBA.doc Ver. 2 2003 F.M.T. 27

UOprettelse af makroer Microsoft Excel XP - Makroer med VBA Makroer kan kategoriseres Makroer kan inddeles i tre kategorier, Automatiserings Program - og Applikationsmakroer. Automatisering En makro som udfører almindelige arbejdsrutiner for eksempel når du åbner, lukker eller udskriver et dokument. Program En makro som tilføjer ny funktionalitet til Excel uden at påvirke det aktive dokument. Dette kan for eksempel være at definere en standardprinter eller at opdatere skabeloner fra et netværk. Applikation Et dokument som styres af en makro fra begyndelse til slutning. En applikationsmakro kan for eksempel starte en dialogboks, som anmoder om de nødvendige data. Derefter indsættes værdierne i dokumentet. Dokumentet gemmes og udskrives automatisk. En typisk applikation kan være en faktura, hvor makroen styrer fakturanummer, sammentællinger og lignende. 28 2003 F.M.T. Excel XP VBA.doc Ver. 2

Microsoft Excel XP - Makroer med VBA UOprettelse af makroer Makroer prioriteres således Excel registrerer og afspiller makroer efter følgende prioritet: 1. Makroer gemt i det aktive dokument 2. Makroer gemt i skabelonen PERSON.XLS 3. Globale makroer som indlæses under referencen Ved start åbnes alle filer i, under Funktioner/Indstillinger/Fanen Generelt. Se Figur 3. eller makroer som er gemt i mappen XLSTART. Denne mappe findes under C:\Documents and Settings\Brugernavn\Application Data\Microsoft\Excel\XLSTART. eller programmer som er indlæst som et tilføjelsesprogram. 4. Excel-funktioner. Figur 3 Hvor skal makroer gemmes? Du kan i Excel XP gemme dine makroer tre forskellige steder: 1. Den aktive projektmappe. 2. En ny projektmappe. 3. Den personlige makroprojektmappe. Excel XP VBA.doc Ver. 2 2003 F.M.T. 29

UOprettelse af makroer Microsoft Excel XP - Makroer med VBA Du vælger hvor makroen skal gemmes, når du indspiller en makro: Figur 4 Klik her for at vælge hvor makroen skal gemmes Hvis du aktiverer rullelisten for Gem makro i:, vil du se disse muligheder: Figur 5 Vælg den ønskede placering Den aktive projektmappe: Dette er det normale sted at gemme makroer. Når du gemmer projektmappen, vil Excel også gemme de makroer du har oprettet. En ny projektmappe: Hvis dine makroer ikke er tilknyttet den aktuelle projektmappe, kan du vælge at gemme dem i en ny separat fil. Du skal blot huske at åbne eller indlæse filen, når du vil anvende makroerne. 30 2003 F.M.T. Excel XP VBA.doc Ver. 2