30. oktober 2007 - 12:27Der er
15 kommentarer og 1 løsning
At fange makro gemt i Startbibliotek
Jeg mente, at det fungerede - og nu gør det ikke alligevel, øv.
Har lavet en makro med dialogboks mm. i en fil (dotm). Denne makro placerer informationer i reg.databasen (hvis nødvendigt) - samt indplacere standardoplysninger i et brev (som modtager, adresse, by, att osv).
Denne fil er gemt her: C:\Documents and Settings\Bruger\Application Data\Microsoft\Word\START
Dernæst har jeg lavet en skabelon, som skal starte denne makro op som en Document_New()-funktion.
Når jeg starter skabelonen, starter den desværre ikke makroen op ved følgende sub:
Private Sub Document_New() Application.Run "Makronavn" End Sub
Hvad gør jeg mon galt? Hvis jeg ændre makroen til 'Document_Open' og åbner skabelonen som document (og ikke som skabelon) så bliver dialogboksen startet op.
Dernæst: Når makroen starter op er hensigten at den skal placere oplysninger i det aktive document (altså resultat af skabelonen). Hvordan får jeg makroen til at sætte oplysninger ind i det active document. (det er nemlig ikke lykkes for mig)
Ideen med konstruktionen var ment til at være, at man får frihed til at ændre struktur i dialogboks mm uafhængigt af skabelonen (eller skabelonerne) - idet antallet af skabeloner hurtigt kan få et stort antal.
Og ja - der er jo netop en userform i filen som ligger i ....\START-biblioteket
Har du haft Word lukket efter at du har placeret den globale skabelon i start-folderen? (startfolderen kan i øvrigt ændres til at pege et andet sted hen, hvis det er mere hensigtsmæssigt; det kan det være, når du skal have det rullet ud til dine kolleger - men det er en helt anden snak)
Og umiddelbart har du heller ikke gjort noget galt. Jeg tænkte først på, om det evt. var dine sikkerhedsindstillinger, der drillede, men hvis du ellers får dialogboksen rigtig i luften på anden vis, bør det ikke være der. Men tjek lige for en sikkerheds skyld og meld tilbage, hvad dit sikkerhedsniveau er sat til.
Mht. at placere oplysninger i det aktive dokument... har du indsat bogmærker der, hvor du vil have oplysningerne ind? I så fald kan du bruge:
Sikkerhedsindstillingerne er: 1) Indstillinger for makroer, der er vips i: Aktiver alle makroer 2) Indstilinger for udviklermakro, der er vips i: Hav tillid til VBA-projektobjek...
Jeg havde glemt, at nævne at jeg i dialogboksen anvender fane-opdeling. Dvs. den ene fane og commandbuttom til opdatering af reg.database - og en fane og commandbuttom til opdatering af skabelonen.
Men i dotm-filen i Start-bibl. ligger alt kode i userformen, hvor modulen blot laver en .show af userformen.
Så vidt jeg kan se har jeg ikke anført 'Text' efter i det følgende: '..("adresse").Range.Text ='
Dette kan jeg selvfølgelig rette. Men det undre mig, at makroen ikke starter i Document_New()-funktionen! Øv.
Eksempel på formel til at skrive i actice dokument: If ActiveDocument.Bookmarks.Exists("TilNavn") = True Then ActiveDocument.Bookmarks("TilNavn").Range.Text = Me.TextBoxTilNavn End If
I din "almindelige" skabelon har du placeret koden i Document_Open. Den skal placeres i Document_New.
I den globale skabelon har du gjort den procedure, som du forsøger at kalde, til Private. Dvs. at den kun kan findes inden for modulet. Lav den om til Public.
1) Yep med Document_Open. Glemt at rette den tilbage efter lidt test.
2) Hjalp med Public. Det er bare super. Skal makroer i userform ligeledes være Public (det har jeg gjort i første omgang) eller er det blot den i module?
Fik den også lige til at lukke dialogboks ned og rettet dato til.
2) Det er kun kode, der skal kunne kaldes andre steder fra (andre moduler, forms osv.), der skal være Public. Dvs. at kode på en userform skal være Private, idet det alene er formen, der kan/skal benytte den.
Jo, man plejer at kunne springe fra felt til felt i et dokument, men du har brugt de nye såkaldte Content Controls, hvor man kun kan "springe", hvis man har beskyttet dokumentet som en formular.
Hvis du indsætter de "gammeldags" kontroller, vil du kunne bruge F11 til at springe mellem dine felter.
Der findes ingen genvejstast til at danne et nyt dokument på baggrund af en skabelon, ud over Ctrl+N, som danner et nyt dokument baseret på Normal.dotm. Hvis du vil have genvejstaster til andre skabeloner, skal du selv kode og lave genvejstast.
Jeg har tidligere forstået på dig, at I har en del skabeloner og så bliver det vel en smule uoverskueligt med genvejstaster. Har du overvejet i stedet at lave en menu/knap med jeres skabeloner? Det kan du jo placere i den globale skabelon, som du allerede har og på den måde få strikket det hele sammen.
Så kan jeg bedre forstå det - altså at F11 ikke virkede.
I den nye word har man jo en 'Hurtig Adgangsknap' til Words skabeloner, derefter får man en dialogboks med Microsofts standardfaner (øv - kan ikke finde ud af at få dem væk - uden at flytte/slette disse). Jeg tænkte blot om der ligesom Ctrl+N var en tilsvarende til denne dialogboks (kunne heller ikke finde den).
Men det kan godt være, at jeg ender med at skulle lave en menu - evt kategoriseret via faner eller på anden måde. Kan du evt. give et praj om hvor man kunne finde et eksempel på dette?
Du var tidligere inde på, at det måske kunne være hensigtsmæssigt at henvise START til et andet sted. Det kan jeg godt se, at det ville jo give store fordele for 'udvikleren/vedligeholderen' af systemet. Hvilke væsentlige bagdele har du erfaring med - udover at brugeren måske ikke lige har adgang til drevet (arbejder hjemme uden opkobling osv)?
Øv - det blev til en masse spørgsmål. Undskyld og i øvrigt tak for en fantastisk hjælp.
Når du skal placere skabeloner, og det gælder både "alm." og dem, der skal indlæses ved start (globale), skal du tage stilling til, om brugerne skal kunne benytte dem lokalt. Og det skal de så.
Jeg vil derfor anbefale, at du bestemmer 2 foldere på brugerens pc, som indeholder skabelonerne (1 til de alm., og 1 til globale). De må ikke være underfoldere til hinanden. Få Word til at pege på de 2 foldere (den ene er arbejdsgruppeskabeloner, den anden er startfolderen). Placér skabelonerne på jeres netværk og sørg for, at disse synkroniseres automatisk ud til brugerne, f.eks. ved logon.
Ingen deciderede ulemper, ud over at der skal være en synkronisering der fungerer.
Hvis du vil lave dine egne menuer/knapper i Båndet/Ribbon, skal du finde og downloade Custom UI Editor, som hjælper dig med at lave den xml-struktur, der skal til.
Synes godt om
Ny brugerNybegynder
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.