Avatar billede kronsj Nybegynder
11. november 2008 - 20:51 Der er 3 kommentarer

VBA: Flere dokumenter åbne samtidig, på samme skabelon

Jeg sidder med en template, som bl.a. indeholder håndtering af DocumentBeforeSave ... etc.
Men når jeg har flere dokumenter åbne, lavet med samme skabelon, viser det sig at makroerne (events) bliver afviklet hulter-til-bulter. Og alligevel ikke. Det lader til at makroerne bliver afviklet fra først åbnedede instans af skabelonen, til den instans der reelt har smidt makroen:

Dokument2 -> Gem
  dokument1_documentbeforesave
  dokument2_documentbeforesave

Det er blot det mindste af problemerne - ved den slags. Jeg brugere mange flere events som også laver rav i den...
Er der nogen der kender til den slags problemstillinger?
Avatar billede Lene Fredborg Ekspert
11. november 2008 - 23:15 #1
Følgende artikel kan muligvis være til hjælp:
http://word.mvps.org/faqs/macrosvba/AppClassEvents.htm

Måske kender du artiklen i forvejen. Den indeholder links til diverse relaterede artikler.

Har du overvejet at flytte dine makroer til en add-in/tilføjelsesprogram (dot-fil gemt i Word’s Start-mappe)? Jeg har en fornemmelse af, at det kunne hjælpe på Word’s indre forvirring. På den måde har du desuden den fordel, at du kan samle makroerne et sted i stedet for at have dem spredt i forskellige skabeloner, og du kan bruge diverse makroer i alle dokumenter, uanset hvilken skabelon, dokumenterne er knyttet til (afhænger selvfølgelig af, hvad det er, dine makroer udfører).
Avatar billede kronsj Nybegynder
12. november 2008 - 13:50 #2
Tak for linket.
Mit spørgsmål var ikke helt rigtigt forklaret, men resulterer i det samme. Der bliver brugt flere skabeloner, der alle indeholder eventhandlere. Min mening er foreløbig, at word som applikation smider en event, som så bliver grebet af alle der lytter til den. Så hvis du har flere dokumenter åbne samtidig, der hver indeholder deres egen eventhandler, bliver eks. Save eventen fanget af eventhandlere der lytter, på alle åbne skabeloner.

Hvordan samler jeg makroerne et sted ?
Avatar billede Lene Fredborg Ekspert
12. november 2008 - 18:06 #3
Laver du makroer, der bruges af mange personer?
Kan du sige noget om, hvilke typer opgaver, du løser med makroerne?

En add-in kan være en helt almindelig Word-skabelon, der listes i dialogboksen Skabeloner og tilføjelsesprogrammer. Du kan automatisk få en skabelon listet deri og slået til, hvis den placeres i den mappe, der er defineret som Word’s Start-mappe (ses i Funktioner > Indstillinger > fanen Filplaceringer). Man kan have mange add-ins i gang på en gang (jeg har selv et større antal).

I tilfælde af Word 2003 eller tidligere, kan en skabelon – ud over decideret tekst, grafik mm. + typografier – indeholde værktøjslinjer, autotekster og makroer. Enhver værktøjslinje, autotekst og makro, der findes i en add-in, vil stå til rådighed for alle dokumenter, du arbejder med, så længe add-in’en er slået til i Skabeloner og tilføjelsesprogrammer.

Du kan tage en hvilken som helst af dine eksisterende skabeloner med makroer og placere den i Start-mappen. Så vil den virke som add-in. Så det med at samle dine makroer består i, at du får kombineret dem alle i samme skabelon. Det kan så godt være, at dine makroer er lavet sådan, at du får et arbejde med at tilrette dem. Hvis nogle af dem f.eks. er lavet sådan, at de kun giver mening i dokumenter, der er baseret på en bestemt template, vil du være nødt til at indbygge test for, om makroen skal køre eller ej, f.eks.:

If ActiveDocument.AttachedTemplate <> "MyTemplate.dot" Then Exit Sub

Det er meget mere praktisk at vedligeholde makroer i én add-in, end det er at have dem spredt i et antal skabeloner, der bruges som skabeloner for diverse typer dokumenter (brev, memo osv.).

Se disse artikler:
http://www.word.mvps.org/FAQs/MacrosVBA/DistributeMacros.htm
http://office.microsoft.com/en-us/word/HA010872941033.aspx
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Tag et kursus i Word og øg effektiviteten

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester