ebook img

Avanceret Word 2007: programmering med VBA for nye brugere PDF

249 Pages·2009·15.844 MB·Danish
by  SimonMartin
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Avanceret Word 2007: programmering med VBA for nye brugere

1 Indholdsfortegnelse Forord ...................................................................8 Makroer samt aktivere Udvikler-fanen ..............10 Hvad er en makro ..............................................................10 Hvad kan du bruge en makro til ........................................10 Hvad en makro er (Visual Basic for Applications) ................11 Det hele sker via Udvikler-fanen, skal aktiveres ...................11 Makrosikkerhed (Sikkerhedsindstillinger) ........13 Makrosikkerhed, åbne dokumenter og makroer .................14 Makrosikkerhed i Sikkerhedscenter, sikker mappe ..............14 Generelt omkring sikkerhed ...............................................16 Oprette og gemme en makro .............................17 Optage en makro med makrooptageren............................17 Kigge på og forbede den genererede VBA-kode ................20 Gemme som *.docm, kopiere/flytte en makro ...................23 Gemme som et dokument af typen .docm ........................23 Kopiere/flytte makro til global skabelon .dotm ..................24 Kopiere/flytte makro til global skabelon .............................26 Slet makro/gemme i Normal.dotm-skabelon .....................26 Slette en makro .................................................................26 Gemme makro i Normal.dotm-skabelonen ........................27 Visual Basic for Applications og VB-editoren ....27 Visual Basic for Application versus Visual Basic ...................27 Visual Basic-editoren ..........................................................28 VB-editoren (der er ikke nogen VBA-hjælp) ........................29 VBA-kode er på engelsk .....................................................31 VB-editor, Projekt/kode-vinduet samt moduler 32 Flyt en makro mellem moduler i VB-editoren .....................32 Navngive makroer og moduler ..........................................34 Omdøbe et modul via Egenskaber-vinduet ........................35 Slette et modul ..................................................................37 De indbyggede makroer ....................................................39 Standard-moduler versus klassemoduler ...........42 Klassemodul ThisDocument, hændelseprocedure ..............42 Ændre Dokument-objektets egenskaber ............................44 Makro, som skjuler/aktiverer Statuslinjen ...........................45 Hændelsesprocedure Document_open ..............................47 Hændelsesprocedure Document_New ...............................47 Hændelsesprocedure i ThisDocument ................................48 Rækkevidden af en hændelsesprocedure ............................49 Hold rede på dine hændelsesprocedurer............................49 Slette hændelsesprocedurer i ThisDocument .....................49 2 Auto-makro i Word 2007 (hændelsesprocedurer) 50 Finde informationer på support.microsoft.com ..................50 Auto-makroer kan springes over ........................................51 Åbn sidste doc, gå til bogmærke (AutoExec) ......................52 Optage en AutoExec-makro ...............................................52 Kommentarer i VBA-koden samt AutoOpen .......................55 AutoOpen, gå til bogmærke i dok, der åbnes ....................55 Gå til første bogmærke i det aktive dokument ...................57 Slet auto-makro, flyt koden i AutoExec-makroen ................58 Nyt bogmærke, fjern bogmærke-markeringen ...................59 Autoclose-makro og MsgBox (brugerinput) .......................60 Konverter auto-makro, sæt zoom i en makro .....................61 Procedure versus funktion, MsgBox, VBA-hjælp 63 Procedure, funktion eller funktionsprocedure .....................63 MsgBox-funktionen og VB-hjælp .......................................63 Syntaksen til MsgBox-funktionen .......................................64 Prompt (MsgBox-argument, ikke valgfrit) ..........................65 Buttons (knapper), MsgBox-argument, valgfrit ..................65 Title (titel), MsgBox-argument, valgfrit ..............................72 Hjælp-fil, Context og dele en linje op i VB-editoren ...........72 Procedurer (Sub, Private, Public...) og variabler 75 Variabler, variabeltyper, procedure med variabl ..................76 En variabeltype kan erklæres af dig eller systemet ..............76 Variabeltyper du har til rådighed .......................................78 Navngive variabler .............................................................79 Mere om variabler, erklære variabeltyper (Dim) .................80 Sætninger til variabelerklæringer .......................................81 Variabeltyper (hvis du ikke erklærer nogen) .......................82 Typeerklæringstegn for variabler ........................................82 Hvor oprettes variabler/kan moduler bruge alle .................83 Er det nu også variabler af typen Bytes ..............................83 Konstanter ..........................................................85 Konstanter .........................................................................85 Hvad er en konstant ..........................................................85 Hvor oprettes de, og kan de bruges i alle moduler .............86 Arrays (datatabeller) ..........................................87 Numre på elementer i et array (Option Base 1) .................89 Vælge øvre og nedre grænse for et array ...........................89 Inputbox-funktionen (enkel brugerdialog) .........................89 Array med flere dimensioner ..............................................92 Split og Join: opdele og samle tekst ...................................93 Test af variabeltyper (Debug.Print) ....................................94 Debug.Print (Immediate-vinduet) i VB-editoren .................95 DateDiff-funktionen (tid mellem to datoer) ........................96 3 Tvungen variabel-erklæring med Option Explicit ...............97 Sortere ord i et array (bruge et array i praksis) ...................98 Funktionsprocedurer (Functions), funktioner .100 Masser af indbyggede funktioner i Word 2007 ................101 Modtagelse af variabler ...................................................102 Rekursive kald ..................................................................103 Betingelser og løkker (kontrolstrukturer) ......106 For...Next-løkker ..............................................................106 Do...Loop-løkker ..............................................................109 Mid-funktionen (trække tegn ud af streng, ændre) .........112 While...Wend-løkker ........................................................115 For Each...Next-løkker .....................................................116 If...Then-betingelse ..........................................................116 Select Case-betingelse .....................................................121 Praktisk løkke-eks. (omformater ord i tekst) ......................125 Trim-funktionen fjerner mellemrum .................................125 Objekter i Word 2007 (hvad er et objekt) .......128 Objekthierarkiet (Objektmodellen) i Word 2007 ..............128 Referencer til objekt (indbyggede dialogbokse) ...............129 Dialogs-objektet (Words indbyggede dialogbokse) ..........131 Objektvariabler samt Set-sætningen ...............133 Variabeltyper du kan bruge ..............................................133 Set-sætningen (forbind variabel med objektreference) .....133 With-sætningen ................................................135 Indsætte overskrift øverst og formatere overskriften .........135 Ændre sideopsætning m.m. for aktiv dokument ..............137 Objekters egenskaber og metoder ...................140 Egenskaber i forskellige objekter via MSDN......................140 Egenskaber i forskellige objekter via VB-Hjælp ..................145 Egenskaber i objekter via makrooptageren .......................145 Metoder ............................................................147 Praktiske-eksempler med forskellige objekter 150 Oprette en indholdsfortegnelse .......................................150 Problemer med BuildingBlockEntries (hurtigdele) ............151 Kontroller, skabelon dokumentet er baseret på ................155 Assistent-dialogboksen (omdøb Normal.dotm) ................156 Åbne en bestemt mappe .................................................157 Arbejde med tabeller .......................................................158 Omfattende hjælp til tabeller i VB-editoren ......................158 Oprette ny tabel, indsæt tal i celler og formater...............159 Sortere i en tabel .............................................................160 Finde og markere en tabel i et dokument ........................160 Finde antallet af tabeller i det aktive dokument ................161 4 Userforms (brugerformularer), brugerdialoger 163 Hvad er en brugerformular ..............................................163 Generelt om kontrolelementer .........................................164 Oprette en skabelon til en brugerformular .....166 Indsæt tekst i skabelondokumentet (output) ....................167 Oprette en brugerformular ..............................168 Brugerformular/kontrolelementers egenskaber ................169 Document_New-, som åbner brugerformularen ..............169 Test skabelon første gang (er indsat luk-knap) .................170 Indsætte og tilpasse kontrolelementer............172 Markere og kopiere flere kontrolelementer ......................173 Omdimensioner kontrolelementer ...................................173 Værktøjslinjen Userform ...................................................174 Kopier brugerformular, ændre baggrundsfarven ..............174 Tilføj genvejstaster til dine kontrolelementer ....................177 Default-egenskab til True, fremhæv kontrolelem ..............178 Vælg Tab-rækkefølge for dine kontrolelementer ...............178 VBA-kode til det første kontrolelement ..........180 Kontrol af brugerinput (hvad er Me) ................................180 Indsæt VBA-kode i formularen .........................................181 Arbejde med den bagvedliggende kode ..........................181 Len-funktionen ................................................................184 Brugerformular-knap (Makrooptageren) ........185 VBA-koden til de resterende kontrolelementer 188 Åbn brugerformular, kontroller data i TextBox3 ...............188 Test data TextBox4 (tegn skal være gyldig dato) ..............189 Initialisere indhold i brugerformularen .............................190 Nulstille brugerformularen ...............................................191 Annullere brugerformularen ............................................191 Overfør til dokument (OK-kommando-knappen) .............192 Indsæt Combobox kontrolelement i formularen 195 Inlineshape/Shape-objekter (billeder/figurer) 201 Omdimensionere Inlineshape og Shape-objekter .............202 Formatere lys og kontrast i et billede ...............................205 Indsætte billede som Shape-objekt, placering ..................206 Indsætte billedet (Shape-objekt) i et sidehoved................208 Finde fejl i VBA-koden ......................................210 De forskellige fejltyper .....................................................210 Kompileringsfejl, syntaksfel (Auto Syntax Check) .............210 Runtime Errors (fejl under kodeafvikling) .........................212 Logiske fejl ......................................................................213 Gennemgå koden linje for linje, Debug.print ...................213 Sådan kører du en procedure linje for linje.......................215 5 Se værdier for variabler m.m. i Locals Window .................216 Indsæt et programstop (Break) ........................................218 Sådan indsættes et Breakpoint .........................................218 Når VBA-koden er i Break- (programstop-tilstand) ...........218 Fjerne Breakpoint ............................................................218 I praksis ...........................................................................219 Watch Window (overvåg) ................................................220 Sådan bruger du Watches ................................................220 En hurtig Quick Watch ....................................................221 Tilføj Watch (der går i Break-tilstand) med højreklik .........222 Fejlhåndtering (lav en fejlhandler) ..................225 Hvor ser du de fejl, du kan fejlbehandle (fange) ...............225 Err-objektet (generere runtime-fejl for at teste) ................226 Afslutning af en fejlhandler (Resume) ...............................228 Fejlhandler i praksis .........................................................229 Andre Office-programmer (automatisering) ...235 Hvad er automatisering ...................................................235 Forbind til objekt-bibliotek, du vil arbejde med ................235 Opret en Excel 2007-server i Word 2007 .........................236 Sorter de to tabeller, som er hentet fra Excel 2007 ..........240 VBA-kode-forkortelser .....................................245 Indeks ...........................................................................246 6 7 Forord Du skal i gang med en bog om Avanceret tekstbehandling i Microsoft Word 2007 med Visual Basic for Applications til Word 2007 for nye brugere, hvor det handler om at automatisere arbejdet med makroer og ikke mindst at kode i det bagved liggende pro- grammeringssprog Visual Basic for Applications til Word 2007 (VBA). At programmere kan være rigtig sjovt, hvis man kan automatisere og effektivisere ar- bejdsopgaver for sig selv og kollegaer og især, hvis det går hurtigt og effektivt uden de store problemer, men kodningens natur er ikke altid sådan. Når du har løst en opgave, så sker det, at der kommer en flink person, der gerne lige vil have noget mere med – uden at vedkommende er klar over, at det måske ikke lige er så enkelt at lave, som det lyder, men det er netop i sådanne situationer, du lærer mest, mens du udvikler den nye kode. Målgruppen til denne bog er nye brugere i forhold til VBA og i forhold til at program- mere, men med en god praktisk viden om at bruge Word 2007. Bogen giver dig et grundigt indblik i, hvad der skal til for at kunne programmere i (VBA) inden for et Office 2007-program (her Word 2007) og mulighed for selv at kom- me i gang med det i praksis. Du får et overblik over og indsigt i, hvad forskellen er på at kunne gøre noget selv i for- hold til at være total afhængig af Makro-optageren, og så følger der en hel del praktisk VBA-kode med, som du kan bruge med det samme og udvikle videre på. Du får indsigt i objektmodellen i Word 2007, og du kommer til at bruge mange forskel- lige objekter samt deres egenskaber og metoder i forbindelse med at løse praktiske op- gaver i Word 2007 med VBA. Du får en grundig gennemgang af mange af de elementer, som følger med al program- mering: bl.a. variabler, konstanter, booleske operatorer, løkker og strengværdier samt, hvordan du erklærer og bruger disse elementer til at løse mange forskellige praktiske opgaver. Kræver det så nogen forudsætninger for at gå i gang med denne bog? Ja, det kræver en god viden om, hvordan du løser forskellige opgaver i Word 2007. Hvis du har gennem- gået de to tidligere videobøger "Word 2007 For nye brugere" samt "Word 2007 Grund- læggende", der begge er udkommet, så er du godt rustet til at gå i gang med at udvikle VBA-makroer i Word 2007 med denne online-bog. Bogen starter med, hvordan du opretter en makro med makrooptageren, som kan kon- vertere dine optagede taste- og musetryk til ægte VBA-kode i en færdig makro. I resten af bogen gennemgås de grundlæggende teknikker omkring VBA-programme- ring i Word 2007. Når du har gennemgået denne bog, er du bl.a. i stand til at: Skrive VBA-kode til makroer, som løser mange forskellige praktiske opgaver. Kontrollere og effektivisere VBA-kode optaget med makrooptageren. Arbejde med sikkerhed omkring makroer. Gemme og placere makroer på forskellige måder. Teste for og tage hånd om fejl i VBA-koden. 8 Arbejde med moduler og klasser (ThisDocument) i VB-editoren. Bruge Objektmodellen i Word 2007 og kunne håndtere objekter, objekt-egenskaber og metoder. Bruge de mest anvendte objekter samt deres metoder og egenskaber i forbindelse med løsning af praktiske opgaver. Opbygge en brugerformular fra bunden og bruge den i praksis. Indsætte en fejlhandler i koden, så evt. fejl kan rettes af brugeren eller i det mindste be- skrives for brugeren så godt som muligt. I denne bog løser du hele tiden praktiske opgaver, efterhånden som du bevæger dig frem gennem stoffet, så det er svært at undgå, at du får en praktisk viden og indsigt i emner, som først gennemgås teoretisk på et senere tidspunkt. Det er dog nemt at sprin- ge frem og få belyst et emne mere grundigt i en online-bog, hvis du ønsker det. Denne onlinebog er udviklet på basis af videobogen med samme navn, men da den ikke indeholder videoer, så har det været nødvendigt at konvertere indholdet i flere vi- deoer til tekst, så indholdet i denne onlinebog er altså ikke nøjagtigt det samme som i videobogen af samme navn. Rigtig god arbejdslyst med Visual Basic for Application i Word 2007. Martin Simon, Solrød Strand vinteren 2008 og 2009. 9 Makroer samt aktivere Udvikler-fanen I dette kapitel skal du arbejde med makroer, der kan gøre dit liv med Word 2007 bety- deligt nemmere, når du kan udføre trivielt arbejde hurtigere og mere effektivt med pas- sende makroer. Kapitlet indeholder en gennemgang af, hvordan du optager en makro med makroop- tageren og gemmer den i det aktuelle dokument samt, hvordan du kopierer makroen over i Normal.dotm skabelonen med Assistent-funktionen. Det gennemgås også, hvordan du sletter makroen og dernæst opretter den igen på nor- mal vis, dvs. gemmer den i Normal.dotm-skabelonen, så den er tilgængelig i alle nye dokumenter med det samme. Hvad er en makro En makro er en serie af kommandoer og instruktioner (et lille program), som du kan aktivere med et par tastetryk, f.eks. Ctrl+j eller i en knap, som du kan klikke på for at få udført serien af kommandoer og instruktioner med et enkelt klik. Hvad kan du bruge en makro til Du kan typisk bruge en makro til alt det, som du også kan gøre uden en makro i Word 2007 – bare meget hurtigere og på en gang med et enkelt klik. Du kan f.eks. sørge for, at Word 2007 generelt starter op med skræddersyede indstillinger omkring sideopsæt- ning, typografier m.m., eller at det kun sker, når du åbner en bestemt dokumentskabe- lon. - Foretage hurtig redigering og formatering. Hvis du, f.eks. tit formaterer tekst med Fed, Kursiv, Understreget, Relief samt en punktstørrelse, der er et punkt større end den omgivende tekst, så kan du spare meget tid ved at oprette en makro, så du bare skal trykke på et par taster eller klikke en gang på en knap for at få formateret markeret tekst med de nævnte formateringer. - Ændre sideopsætningen hurtigt, f.eks. hvis du tit skifter mellem stående og liggende papirretning. - Kombinere kommandoer og funktioner – det kunne være at oprette en tabel i en bestemt størrelse og med en bestemt formatering. - Gemmensøge store dokumenter på flere hundrede sider og rense uønsket tekst ud eller ændre på formateringen med et enkelt klik. - Aktivere og udfylde manuelt oprettede og tilpassede skabeloner. - Oprette, sortere og formatere tabeller og billeder. - Oprette brugerformularer til forskellige formål og få brugere til at udfylde dem på den rigtige måde. Mulighederne er mange og i mange tilfælde meget arbejdsbesparende. 10

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.