04. oktober 2012 - 10:23
Der er
2 kommentarer og
1 løsning
Sammenkæde skabeloner i Word
Jeg har en skabelon (QT.dotm), hvor der er tilknyttet en anden skabelon (MangeFunktioner.dotm) via dialogen 'Skabeloner og tilføjelsesprogrammer'. I den tilknyttede skabelon er der nogle funktioner som jeg gerne vil kalde fra en makro i skabelon QT.dotm. Dette kan tilsyneladende ikke lade sig gøre, da det er to forskellige VBA-projekter.
Har prøvet at Vedhæfte i stedet for at Tilknytte - men det virker kun mellem dokument og skabelon - ikke mellem to skabeloner.
Hvis man opretter en knap via Tilpas Bånd kan man uden videre 'fange' makroer i de to skabeloner - men er der andre muligheder ?
Eksempelfiler tilsendes på forlangende . . .
04. oktober 2012 - 13:40
#1
Da en skabelon ikke kan være "tilknyttet" en anden skabelon, er det vel sådan, at MangeFunktioner.dotm er installeret som et tilføjelsesprogram, dvs. at den f.eks. er placeret i Word's START-mappe?
Du kan ikke kalde en Function eller en Private Sub i et andet projekt, men du kan kalde en Sub (eller Public Sub). Hvis det, du vil kalde, er en Function, kan du i MangeFunktioner.dotm lave en Sub, som så kalder din Function, og så kan du kalde den ny Sub fra din skabelon. For at afvikle kode fra et andet projekt, brug:
Application.Run
på det sted, hvor koden fra det andet projekt skal afvikles.
Eksempel ifølge VBA-hjælpen:
Application.Run "MyProject.MyModule.MyProcedure"
Linjen kører en makro (Sub) med navnet MyProcedure, som findes i modulet MyModule i et project med navnet MyProject.
VIGTIGT: du skal være opmærksom på, at det faktisk ikke virker (eller ikke altid virker), hvis du inkluderer projektnavnet (her "MyProject"). Udelad det, så syntaksen er:
Application.Run "MyModule.MyProcedure"
Se VBA-hjælpen for mere info.
06. oktober 2012 - 00:55
#2
Tak for det - det løser mit problem
Jeg har modtaget en anden løsning fra PB i Hald, som også er interessant. Den går i korthed ud på at oprette en dokument og tilknytte MangeFunktioner.dotm. Gem dokumentet som en makroenablet skabelon (fx publisering.dotm). Gå i Tools/Refrences og sæt flueben i Project (MangeFunktioner). Herefter kan du fra TemplateProject Publisering kalde alle Public subs og functions i Project MangeFunktioner.
I min situation er lene-fredborgs løsning mest anvendelig - så smid et svar for at få pointene.