Kopfzeile per VBA mit Seitenzahl und Text formatieren unter Word2003

05/05/2008 - 18:16 von Bulin, Michael | Report spam
Hallo
ich google schon eine ganze Weile im Netz herum, bin aber noch auf keine
brauchbare Lösung gestoßen.

Mein Probelem:

ich möchte unter Word2003 per VBA Kopfzeilen für gerade und ungerade
Seiten generieren die das folgende vereinfachte Format besitzen soll
(Die Seite wurde entsprechend mit OddAndEvenPagesHeaderFooter = True
konfigiuriert):


ungerade Seite:
Tabstop Seitenzahl Tabstop "Überschrift"

gerade Seite:
Tabstop "Überschrift" Tabstop Seitenzahl

Das Setzen der Tabulatoren und das Einfügen des Überschriften-Textes
klappt mit:

' Inhalte von Kopf- und Fußzeilen löschen
For z = 1 To 3
ActiveDocument.Sections(1).Headers(z).Range.Delete
ActiveDocument.Sections(1).Footers(z).Range.Delete
Next z

' ungerade Seite
Set lo_Range =
ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range
With lo_Range
.ParagraphFormat.TabStops.ClearAll
.ParagraphFormat.TabStops.Add Position:=CentimetersToPoints(0.1), _
Alignment:=wdAlignTabLeft, _
Leader:=wdTabLeaderSpaces

.ParagraphFormat.TabStops.Add Position:=CentimetersToPoints(19.5), _
Alignment:=wdAlignTabRight, _
Leader:=wdTabLeaderSpaces

.InsertBefore (vbTab)


ActiveDocument.Fields.Add Range:=lo_Range, _
Type:=wdFieldEmpty, _
Text:="PAGE \* Arabic ", _
PreserveFormatting:=True
.InsertAfter (vbTab & gsc_HeaderEven)

End With


' gerade Seite
Set lo_Range =
ActiveDocument.Sections(1).Headers(wdHeaderFooterEvenPages).Range
With lo_Range
.ParagraphFormat.TabStops.ClearAll
.ParagraphFormat.TabStops.Add Position:=CentimetersToPoints(0.1), _
Alignment:=wdAlignTabLeft, _
Leader:=wdTabLeaderSpaces

.ParagraphFormat.TabStops.Add Position:=CentimetersToPoints(19.5), _
Alignment:=wdAlignTabRight, _
Leader:=wdTabLeaderSpaces


.InsertBefore (vbTab & gsc_HeaderEven & vbTab)

ActiveDocument.Fields.Add Range:=lo_Range, _
Type:=wdFieldEmpty, _
Text:="PAGE \* Arabic ", _
PreserveFormatting:=True

End

Set lo_Range = Nothing

Leider Positioniert sich die Seitennummer nicht an der gewünschte Stelle.


Zusàtzlich möchte ich noch die Startseitennummer festlegen können, die
ich der Einfachheit halber per InputBox eingeben und der in der
automatischen Page-Angabe zuschlagen möchte. Wie muss dann die
Fields.add-Syntax àndern, damit ich zur PAGE-Variable noch den Wert der
Startseiten-Nummer addieren kann.

Kann mit jemand helfen und eione Tipp geben?

Thx & bye
Micha
 

Lesen sie die antworten

#1 Robert M. Franz (RMF)
08/05/2008 - 18:21 | Warnen spam
Bulin, Michael wrote:
[..]
Zusàtzlich möchte ich noch die Startseitennummer festlegen können, die
ich der Einfachheit halber per InputBox eingeben und der in der
automatischen Page-Angabe zuschlagen möchte. Wie muss dann die
Fields.add-Syntax àndern, damit ich zur PAGE-Variable noch den Wert der
Startseiten-Nummer addieren kann.



direkt kannst Du einem PAGE-Feld nichts hinzudichten. Entweder sagst Du
dem Abschnitt, er soll auf Seite x beginnen (sicher die sauberste
Lösung), oder Du verschachtelst das Feld à la:

{ ={ PAGE }+x }

Gruss
Robert
/"\ ASCII Ribbon Campaign | MSFT |
\ / | MVP | Scientific Reports
X Against HTML | for | with Word?
/ \ in e-mail & news | Word | http://www.masteringword.eu/

Ähnliche fragen