Avatar billede twotimes Nybegynder
31. august 2007 - 16:07 Der 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".

Tak for hjælpen
Avatar billede 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.
Avatar billede word-hajen Nybegynder
01. september 2007 - 14:29 #2
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.

Sig til, hvad du har behov for.
Avatar billede twotimes Nybegynder
01. september 2007 - 17:16 #3
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..!
Avatar billede word-hajen Nybegynder
01. september 2007 - 17:38 #4
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?
Avatar billede twotimes Nybegynder
02. september 2007 - 01:54 #5
Grafikken ligger på en server, og bliver downloadet til den lokale computer under opstarten.

Og ja, der er én grafik til sidehoved, og én til sidefod.
Avatar billede word-hajen Nybegynder
02. september 2007 - 09:48 #6
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
   
    objHeader.InlineShapes.AddPicture FileName:=strHeaderFile
    objFooter.InlineShapes.AddPicture FileName:=strFooterFile
   
    Set objHeader = Nothing
    Set objFooter = Nothing
End Sub

Public Sub InsertPictures1()
    Call InsertPicture("C:\Billeder\Billede001.jpg", "C:\Billeder\Billede002.jpg")
End Sub
*************
Avatar billede twotimes Nybegynder
03. september 2007 - 12:33 #7
Det ser spændende ud! Jeg tester det her i aften.
Avatar billede twotimes Nybegynder
07. september 2007 - 14:09 #8
Hej Igen,

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.

Der er vist et eller andet jeg gør forkert
Avatar billede word-hajen Nybegynder
07. september 2007 - 15:13 #9
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).
Avatar billede twotimes Nybegynder
07. september 2007 - 16:06 #10
Hey, jeg er ikke helt med på hvad "stil dig i proceduren betyder".

Jeg stiller markørern der hvor der står InsertPictures1 og trykker så f8. Og der sker ikke rigtig noget.
Avatar billede twotimes Nybegynder
07. september 2007 - 16:08 #11
Dvs når jeg trykker f8 kommer der en gul markering, den rykker nedad hver gang jeg trykker. Men der sker ikke noget i dokumentet
Avatar billede word-hajen Nybegynder
07. september 2007 - 18:39 #12
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?
Avatar billede word-hajen Nybegynder
19. september 2007 - 21:21 #13
Respons?
Avatar billede twotimes Nybegynder
20. september 2007 - 08:52 #14
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...
Avatar billede word-hajen Nybegynder
20. september 2007 - 14:36 #15
Velkommen hjem fra ferie :-)

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.
Avatar billede twotimes Nybegynder
20. september 2007 - 23:07 #16
Mange tak,

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..?
Avatar billede twotimes Nybegynder
20. september 2007 - 23:13 #17
Forresten hvis den nederste funktion "insertpictures1" referer til nogle billeder kommer den med en runtime fejlmeddelelse.

Hvis jeg så retter referencen til nogle billeder der rent faktisk eksisterer kører makroen fint, men der sker ingenting..
Avatar billede word-hajen Nybegynder
20. september 2007 - 23:27 #18
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.
Avatar billede twotimes Nybegynder
21. september 2007 - 09:51 #19
Mente bare at fejlmeddelsen var en indikation på at jeg i hvert fald ku få koden eksekveret...

Prøver lige at sætte dokumentet op til at have speciel første side, men det skulle makroen egentlig helst gøre.
Avatar billede twotimes Nybegynder
21. september 2007 - 09:54 #20
Og så virkede det PERFEKT...! 

Kan du sætte prikken over iet med noget kode, der automatisk sætter speciel 1. side?
Avatar billede word-hajen Nybegynder
21. september 2007 - 11:46 #21
Hvis du kommer med i'et - så sætter jeg prikken ;-)

Tilføj følgende linje i makroen:
ActiveDocument.PageSetup.DifferentFirstPageHeaderFooter = True

Men det bedste er normalt at sætte det op i skabelonen i stedet for at gøre det via kode.
Avatar billede twotimes Nybegynder
21. september 2007 - 14:48 #22
HVor er det fedt. Det virker jo lige som det skal. Jeg tror vist du har fortjent dine point.! Og mange tak for hjælpen!!!
Avatar billede word-hajen Nybegynder
21. september 2007 - 16:30 #23
Velbekomme :-)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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