31. august 2007 - 16:07Der er
22 kommentarer og 1 løsning
Word Makro, med speciel 1. side
Hej,
jeg er igang med at lave en macro, der bruger "speciel 1. side". På den "specielle første side" skal der indsættes en stump grafik i side-hovedet.
Mit problem at få makroen til indsætte sidehoveden grafikken korrekt ligegyldigt om brugeren har 1 eller 20 sider i sit dokument, og ligegyldigt hvor cursoren er placeret når makroen afspilles.
Jeg optager makroen, så et råd der ikke involverer egentlig scripting ville være at foretrække.
Jeg mangler altså en kommando alla "Gå til dokumentets første side hovede".
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
Slettet bruger
31. august 2007 - 23:17#1
Du skal lave en skabelon hvor du laver et tvunget sideskift, så du har 2 sider. Her sætter du din sidehoved på første side og sætter til sepcielt første side. Derefter sletter du side 2 igen og gemmer din skabelon. Det er dem nemmeste måde.
Hvis du skal have fast grafik i (dvs. at grafikken ikke skal kunne indsættes/fjernes eller der skal vælges mellem forskellige grafikker), så er hov-sas løsning absolut den rigtige. Hvis ikke - og du altså har behov for kode/makro - så er en optage-makro en skidt idé, da det som kan gøres forholdsvis smertefrit uden al den ekstra kode, som en optage-makro, der skal selecte et sidehoved, medfører.
Ok jeg prøver lige at uddybe hvad makroen skal kunne.
Efter (derfor tænkte jeg at skabeloner ikke kunne bruges) brugeren har skrevet en tekst på én eller flere sider, skal makroen kunne indsætte to stumper grafik i dokumentets første sidehoved/fod.
Der skal være fire fem makroer som hver indsætter forskellig grafik.
Ved ikke om det forklarer behovet tydeligt nok, ellers må i lige spørge, og tak for forslagene..!
Hvor har du grafikken? Ligger den som billedfiler, der skal hentes, eller har du gemt dem som autotekst? Det kan nogle gange være en fordel at gemme dem som autotekster, idet de så altid er tilgængelige via skabelonen.
De to stumper grafik - det er 1 til hoved og 1 til fod?
Jeg har lavet 2 procedurer. 1 (InsertPicture), som indeholder koden til at indsætte billeder i header/footer og 1 (InsertPictures1), som sender filnavne til den første procedure. På den måde kan du genbruge "hovedproceduren" ved blot at oprette procedurer, der angiver filnavnene på de grafikker, der skal indsættes.
Vær opmærksom på, at jeg i InsertPicture collapser header/footer. På den måde bliver evt. eksisterende tekst el.lign. i header/footer IKKE overskrevet. Hvis du skal overskrive det, der evt. står i forvejen, fjerner du blot de 2 linjer med Collapse fra koden.
Husk at angive de rigtige filnavne på de grafikker, som du har liggende. Vær opmærksom på, at min kode IKKE tjekker, om grafikfilerne rent faktisk eksisterer. Du vil derfor få en fejl, hvis de ikke gør.
************ Public Sub InsertPicture(strHeaderFile As String, strFooterFile As String) Dim objHeader As Range Dim objFooter As Range
Set objHeader = ActiveDocument.Sections(1).Headers(wdHeaderFooterFirstPage).Range objHeader.Collapse wdCollapseStart
Set objFooter = ActiveDocument.Sections(1).Footers(wdHeaderFooterFirstPage).Range objFooter.Collapse wdCollapseStart
jeg har rodet med det noget tid og kan ikke få det til at funke. Jeg opretter en ny macro med navnet "brevpapir" trykker rediger og copy-paster din kode ind- Derefter udskifter jeg billed stierne, men når jeg så afspiller makroen sker der simpelthen ingen ting.
Jeg går ud fra, at du har styr på dit sikkerhedsniveau for makroer, ikk'?
Kører du makroen fra dit dokument eller starter du koden fra kodevinduet? Hvis du kører den fra dokumentet, synes jeg, at du skulle prøve at køre den fra kodevinduet (stil dig i proceduren med Call InsertPicture - tryk på F8. Du "stepper" dig nu vej igennem proceduren).
Se nu bare, du er da helt med på, hvad "stil dig i proceduren" betyder :-)
Den gule markering - den kører hele vejen igennem InsertPictures1 og "brevpapir", som du har valgt at kalde den? Hov forresten, når du nu har valgt at lave en "brevpapir"-procedure, har du så husket
1. at rette linjen med Call InsertPicture til Call brevpapir 2. at tage (strHeaderFile As String, strFooterFile As String) med i brevpapir-proceduren
Og vi er enige om, at hvis du gør det manuelt, så kommer logoerne i dokumentet?
Hej igen, er lige hjemvendt fra ferie, og tester igen her i aften.
Med manuelt mener du så om det virker hvis jeg helt normalt uden nogen makro brug indsætter grafik i dokumentets sidehoved og sidefod? Hvis det er korrekt, virker det når jeg gør det manuelt.
Det ville være herligt hvis du ku linke til en step by step tutorial om hvordan man sætter kode ind i en makro. Har prøvet at søge, men kan ikke lige finde de rigtige søgeord...
Nej, med manuelt mener jeg, at du starter makroen fra koden af, og stepper dig vej igennem.
Jeg bliver så egentlig lidt smånervøs, når du spørger, hvordan man sætter kode ind i en makro. For kode og makro er 2 sider af samme sag. I øvrigt har jeg lavet hele koden/makroerne, så du skulle egentlig "bare" kopiere det, jeg har lavet og placere det i kodevinduet i din skabelon.
Der sker ikke noget når jeg kører manuelt igennem makroen... Gør det højst sandsynligt forkert.
Har lidt styr på programmering, så er med på at kode og makro er ca. det samme. I java, er der jo f.eks. noget med at en class skal have det samme navn som den fil, der indeholder den. Det ser ud til at noget lignende gør sig gældende med makroer udfra dit tidligere svar, måske er der andet der skal rettes til i koden..?
Som jeg skrev i min kommentar 02/09-2007 09:48:29 sammen med koden, skal du naturligvis rette filnavnene til nogle filer, der rent faktisk eksisterer. Ellers er det jo fuldstændig korrekt, at koden kommer med en fejl.
Har du sat dokumentet op til at være med 1. side speciel? For det er der, din grafik havner - og har du ikke sat dokumentet op, så kan du naturligvis ikke se det.
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.