26. juli 2005 - 14:43Der er
7 kommentarer og 1 løsning
Macro i word
Hej
Jeg sidder med et dokument der skal benyttes mange gange, men med forskellige variable i den kode der er beskrevet i dokumentet.
Jeg har fået den ide, at man kunne ved åbning af dokumentet vælge hvilke variabler man skulle bruge, og vups, så blev de rettet hele vejen ned igennem dokumentet.
Mit problem er så, at jeg ikke kender det fjerneste til macroer i word. Jeg har forsøgt at finde materiale om det på nettet, men uden nogen synderlig succes.
Er der nogen der kan sige om min ide er helt håbløs og at det ikke kan lade sig gøre eller hvis det kan, har nogle ideer til hvor jeg kan finde grundig vejledning i "macro for begyndere" og måske "videregående" :) Jeg kan kode i vb hvis jeg virkelig skal, men har ikke meget erfaring i det, så det ville være at foretrække hvis man kan lave macroerne på snydemåden (uden at kode) fra word.
Jeg kender lidt til brevfletning, men kan ikke helt se hvordan det kan bruges i denne sammenhæng.
Jeg har et 80 sider langt dokument, hvor de omtalte variable går igen og igen. Dem der skal bruge det her dokument skal kunne copy/paste koden med de korrekte variable navne. Fx. er det servernavn, brugerID og password der skal udskriftes. Nu står de som <Servernavn>, <brugerID> og <password>, hvor de så skal ind manuelt og rette til, når de har kopieret ind i en promt. Det skal være så let som muligt at BRUGE dokumentet, og derfor mit spørgsmål.
Hvis jeg ikke har forstået dit svar, må du meget gerne uddybe :)
Måske du kan bruge en userform der åbner med dit dokument. I userformen kan du så lade brugeren indtaste de værdier der skal bruges i variablerne eller evt. lade dem vælge fra nogle foruddefinerede værdier/konstanter ?
Ja, det er lige præcis det jeg leder efter! Mit problem er at jeg ikke ved hvordan jeg laver formen, og hvordan jeg får linket værdierne til variablene i dokumentet.
Jeg kender ingen guides men det betyder ikke at de ikke findes. Jeg er godt nok ikke en ørn til Word VBA, men dette kan være en fremgangsmåde.
Forhåbentligt vil nogle andre rette mig hvis det er formålstjenligt.
Prøv det først på et nyt dokument.
Tryk Alt+F11 for at komme til kodevinduet.
Til venstre skulle du gerne kunne se et projekt der bærer navnet på dit dokument.
Højreklik på ThisDocument og vælg Insert - Module Tilføj dette øverst:
Public One As String
Public Sub Test() ActiveDocument.Bookmarks("a").Range.Text = One End Sub
Højreklik igen på ThisDocument og vælg Insert - UserForm
Fra Toolbox'en trækker du en TextBox og en CommandButton ind på formen.
Dobbeltklik på CommandButton'en.
Tilføj kode så det ser sådan ud:
Private Sub CommandButton1_Click() One = TextBox1.Text Application.Run "Test" End Sub
Dobbeltklik på ThisDocument og tilføj kode så det ser således ud:
Private Sub Document_Open() UserForm1.Show End Sub
Gå til word dokumentet og indsæt et bogmærke og navngiv det a.
Gem og luk dit word dokument. Når du åbner det, skulle du få et userform hvor du i textbox'en skriver hvad du vil have i dit bookmark. Klik derefter på controlbutton og luk formen ved at trykke på X'et øverst til højre.
Istedet for at tildele værdien af variablen One til et bookmark, så skulle du kunne tildele værdien af One til en variabel i din kode, fx. dinVariabel = One
Du kan ihvertfald prøve det af og se om det er vejen frem.
Så er det afprøvet og det har givet mig en rigtig god ide om hvad det her handler om :) Det er præcis det jeg ledte efter, og din pædagoiske vejledning er super :D
(Det der point halløj - hvorn fungerer det? Du sender et svar og så har jeg mulighed for at give pointne?)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.