|
| Word: ændre topmarken via en makro Fra : Henrik Hougaard |
Dato : 06-01-03 14:16 |
|
Hejsa, jeg har et standardbrev, der i afvikles via makroen. Når brugeren er
færdig med at skrive brevet (på f.eks. 3-4 sider) vil jeg have sat en anden
topmargen på side 2 og efterfølgende sider. Altså topmargen på side et er 4
cm og efterfølgende sider skal være 3 cm.
Dette vil jeg gøre i en makro således:
If ActiveDocument.BuiltInDocumentProperties(wdPropertyPages) > 1 Then
Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=2
ActiveDocument.Range(Start:=Selection.Start, End:=ActiveDocument. _
Content.End).PageSetup.TopMargin = CentimetersToPoints(3)
End If
Men den laver hele dokumentet med margen 3 cm. Hvis jeg gør det manuelt
(sådan er koden faktisk inspillet) så virker det, men afspilles makroen
virker der ikke!
Er det noget med at Start (og evt. End) i ovenstående skal skiftes ud med
henvisning til siderne i stedet?
Nogen gode ideer.
| |
pre (06-01-2003)
| Kommentar Fra : pre |
Dato : 06-01-03 16:46 |
|
Selvfølgelig virker det ikke. Der er (kan kun være) ét aktivt dokument
"Henrik Hougaard" <fam.hougaard@nospam.stofanet.dk> skrev i en
meddelelse news:3e19817a$0$248$edfadb0f@dread12.news.tele.dk...
: Hejsa, jeg har et standardbrev, der i afvikles via makroen. Når
brugeren er
: færdig med at skrive brevet (på f.eks. 3-4 sider) vil jeg have sat en
anden
: topmargen på side 2 og efterfølgende sider. Altså topmargen på side et
er 4
: cm og efterfølgende sider skal være 3 cm.
:
: Dette vil jeg gøre i en makro således:
:
: If ActiveDocument.BuiltInDocumentProperties(wdPropertyPages) > 1
Then
:
: Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=2
: ActiveDocument.Range(Start:=Selection.Start, End:=ActiveDocument.
_
: Content.End).PageSetup.TopMargin = CentimetersToPoints(3)
: End If
:
: Men den laver hele dokumentet med margen 3 cm. Hvis jeg gør det
manuelt
: (sådan er koden faktisk inspillet) så virker det, men afspilles
makroen
: virker der ikke!
:
: Er det noget med at Start (og evt. End) i ovenstående skal skiftes ud
med
: henvisning til siderne i stedet?
:
: Nogen gode ideer.
:
:
| |
Henrik Hougaard (07-01-2003)
| Kommentar Fra : Henrik Hougaard |
Dato : 07-01-03 08:42 |
|
"pre" <skrivtil@gruppen.dk> skrev i en meddelelse
news:3e19ac96$0$147$edfadb0f@dread12.news.tele.dk...
> Selvfølgelig virker det ikke. Der er (kan kun være) ét aktivt dokument
Joda, se Jan's svar efterfølgende..... Jeg tror måske du misforstod
spørgsmålet, jeg har også kun ét aktivt dokument, nemlig standardbrevet.
Dette styres så af en række makroer, der afvikles i takt med at brugeren
indskriver adresse, emne, tekst osv.
Henrik
| |
pre (07-01-2003)
| Kommentar Fra : pre |
Dato : 07-01-03 13:21 |
|
Ja det var en "smutter" som gik af uden at være færdig. (Jeg var lige
omme i Word for at afprøve en makro).
"Henrik Hougaard" <fam.hougaard@nospam.stofanet.dk> skrev i en
meddelelse news:3e1a84b1$0$196$edfadb0f@dread12.news.tele.dk...
:
: "pre" <skrivtil@gruppen.dk> skrev i en meddelelse
: news:3e19ac96$0$147$edfadb0f@dread12.news.tele.dk...
: > Selvfølgelig virker det ikke. Der er (kan kun være) ét aktivt
dokument
:
: Joda, se Jan's svar efterfølgende..... Jeg tror måske du misforstod
: spørgsmålet, jeg har også kun ét aktivt dokument, nemlig
standardbrevet.
: Dette styres så af en række makroer, der afvikles i takt med at
brugeren
: indskriver adresse, emne, tekst osv.
:
: Henrik
:
:
| |
Jan Kronsell (06-01-2003)
| Kommentar Fra : Jan Kronsell |
Dato : 06-01-03 19:08 |
|
Hej Henrik
"Henrik Hougaard" <fam.hougaard@nospam.stofanet.dk> skrev i en meddelelse
news:3e19817a$0$248$edfadb0f@dread12.news.tele.dk...
> Hejsa, jeg har et standardbrev, der i afvikles via makroen. Når brugeren
er
> færdig med at skrive brevet (på f.eks. 3-4 sider) vil jeg have sat en
anden
> topmargen på side 2 og efterfølgende sider. Altså topmargen på side et er
4
> cm og efterfølgende sider skal være 3 cm.
>
Denne makro burde kunne gøre det. Forudsætter at margen i forvejen er sat
til 4 på side 1.
Sub TopmargenFraSide2()
'Jan Kronsell 6-1-2003
If ActiveDocument.BuiltInDocumentProperties(wdPropertyPages) > 1 Then
Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Name:="2"
Selection.MoveUp Unit:=wdLine, Count:=1
ActiveDocument.Range(Start:=Selection.Start, End:=Selection.Start). _
InsertBreak Type:=wdSectionBreakNextPage
Selection.Start = Selection.Start + 1
ActiveDocument.Range(Start:=Selection.Start, End:=ActiveDocument. _
Content.End).PageSetup.TopMargin = CentimetersToPoints(3)
Else
Exit Sub
End If
End Sub
| |
Henrik Hougaard (07-01-2003)
| Kommentar Fra : Henrik Hougaard |
Dato : 07-01-03 08:38 |
|
> Denne makro burde kunne gøre det. Forudsætter at margen i forvejen er sat
> til 4 på side 1.
>
> Sub TopmargenFraSide2()
>
> 'Jan Kronsell 6-1-2003
> If ActiveDocument.BuiltInDocumentProperties(wdPropertyPages) > 1 Then
>
> Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Name:="2"
> Selection.MoveUp Unit:=wdLine, Count:=1
> ActiveDocument.Range(Start:=Selection.Start, End:=Selection.Start). _
> InsertBreak Type:=wdSectionBreakNextPage
> Selection.Start = Selection.Start + 1
> ActiveDocument.Range(Start:=Selection.Start, End:=ActiveDocument. _
> Content.End).PageSetup.TopMargin = CentimetersToPoints(3)
> Else
> Exit Sub
> End If
> End Sub
Jamen det kunne den da! Havde selv leget lidt med samme, men havde det
problem, at når jeg indsatte et sektionsskift, så fik jeg en nye blank sider
(koden afvikles efter al teksten er skrevet). Men jeg kan se af din kode, at
det skyldes, at jeg stod på første plads på f.eks. side 2, men skal stå på
sidste plads på side 1 for ikke at få ny blank side.
Tak til Jan
Egentligt ville jeg helst have de forskellig topmargener til at ligge i
standardbrevet, når det åbnes - for så vil det layoutmæssigt passe under
skrivningen (og ikke være en omformattering til sidst). Men det kan jeg ikke
får til at virke. Dokumentet er tomt (uden tekst), når det åbnes. Det er dog
lykkes mig at få en bundtekst lagt ind på side 2 og fremefter - selvom side
2 ikke eksisterer når det åbnes. Den samme mulighed var ønskelig med
topteksten, men det vil ikke virke.
Henrik
| |
Kurt B. Andersen (07-01-2003)
| Kommentar Fra : Kurt B. Andersen |
Dato : 07-01-03 20:55 |
|
"Henrik Hougaard" <fam.hougaard@nospam.stofanet.dk> skrev i en meddelelse
news:3e1a83d7$0$183$edfadb0f@dread12.news.tele.dk...
> Egentligt ville jeg helst have de forskellig topmargener til at ligge i
> standardbrevet, når det åbnes - for så vil det layoutmæssigt passe under
> skrivningen (og ikke være en omformattering til sidst). Men det kan jeg
ikke
> får til at virke. Dokumentet er tomt (uden tekst), når det åbnes. Det er
dog
> lykkes mig at få en bundtekst lagt ind på side 2 og fremefter - selvom
side
> 2 ikke eksisterer når det åbnes. Den samme mulighed var ønskelig med
> topteksten, men det vil ikke virke.
>
> Henrik
>
>
Jamen jamen - jamen jamen.
Nu er vi da vist inde på noget, som har været oppe utallige gange her i
gruppen, nemlig "bare" forskellige sidehoveder og sidefødder. Hvis det er
det eneste problem, er makro slet ikke nødvendig.
Jeg fandt et af mine gamle svar frem og har så lige tilrettet det lidt:
Indsæt et sektionsskift på side 1. Hvilken form for sektionsskift der er
mest hensigtmæssig afhænger af den konkrete opgave. Hvis du f.eks. har en
forside, hvor du ved, at der ikke vil ske ændringer, kan du forneden
indsætte et sektionskift af typen "fortsat næste side". Vil du helst ikke
have et sektionsskift til at blande sig i det der foregår på side 1, kan du
med fordel indsætte det øverst på siden, lige under sidehovedet og inden
selve teksten kommer. Så skal det bare være et alm. sektionsskift af typen
"fortsat". Det gøres under menuen
Indsæt - sideskift m.m.
Det afgørende er, at du får lavet sektioner i dokumentet, idet man så kan
afbryde forbindelserne mellem sektionerne og derved få forskellige
sidehoveder m.m.
Når du har fået lavet dit sektionsskift på side 1, hopper du om på side 2.
Har du p.t. ingen side 2, laver du bare tomme linieskift. Derefter går du
ind i sidehovedet på side 2 og trykker på knappen "samme som forrige" (det
kan du ikke, hvis ikke der er sektionsskift). Nu er forbindelsen afbrudt
mellem de 2 sektioner.
Så er der en løsning, hvor det drejer sig om forskellige tekster i
sidehovedet på henholdsvis side 1 og de efterfølgende sider:
Derefter sletter du alt det, der står i sidehovedet (hvis du også vil have
faste tekster som bl.a. bruges hos folk, som har lavet et brevpapir med
logo osv på side 1, mens der på side 2 og fremefter kun skal stå et sidetal)
på side 2 og lukker.
Det var løsningen, hvis det var noget med forskellige tekster. Du ønsker
åbenbart kun forskellige margener.
Når du står i sidehovedet på side 2 og har afbrudt forbindelsen, skal du
derefter trykke på knappen sideopsætning.
Sæt flueben ud for speciel første side og så kan du ellers sætte margener,
afstand til kant osv lige som du lyster. Det vil kun påvirke sidehovedet på
side 2 og fremefter.
Nu har du forskelligt sidehoved på side 1 og 2 og fremefter.
Så er det åbenbart en skabelon, hvor side 2 ikke skal ses og måske slet ikke
bruges.
Nu sletter du igen alle de tomme linieskift, indtil du er tilbage på det
sted på side 1, hvor du vil starte. Hver gang du får skrevet så meget, at
side 2 kommer med, dukker den op uden sidehoved men med sidefod, men ellers
er den nærmest at betragte som usynlig.
Så sektionsskift og afbryd forbindelsen er løsningen til meget ondt.
Kurt
| |
Henrik Hougaard (08-01-2003)
| Kommentar Fra : Henrik Hougaard |
Dato : 08-01-03 15:33 |
|
> Jamen jamen - jamen jamen.
Selv Jamen jamen - jamen jamen.!
Jeg er helt med på hvordan man laver forskellige sidehoveder/fødder ved brug
af sektionsskift m.v. - også hvordan man "sletter" side 2 igen. Mit problem
var imidlertid, at jeg ikke kunne få det samme til at virke med margerne.
Uanset hvad jeg gjorde, sektionsskift eller ej, rettede Word hele
dokumentets margener.
Men jeg vil lige prøve dit forslag sidst i din tekst. Hvis det funker er det
lige det jeg søgte.....
Henrik
| |
|
|