Hallo zusammen,
ich wollte die Fußzeile gerne per Makro anpassen und zwar so, daß rechts folgendes zu finden ist:
Seite x von yy
(im Anhang das bisherige Makro)
Gruß
Alex
=======
Habe es so probiert, doch dann gibt es eine Fehlermeldung:
Doc = StarDesktop.CurrentComponent
PageNumber = Doc.createInstance ("com.sun.star.text.TextField.PageNumber")
+ PageNumber.NumberingType = com.sun.star.style.NumberingType.ARABIC
++ FooterCursor = StdPage.FooterTextLeft.Text.createTextCursor()
StdPage.FooterTextLeft.Text.insertTextContent(FooterCursor, PageNumber, False)
Fehlermeldung
+ "Eigenschaft oder Methode nicht gefunden"
++ Klammere ich die Zeile (+) aus, dann gibt es an dieser Stelle folgende Fehlermeldung:
"Objektvariable nicht belegt"
Hier das komplette Makro
Sub seitenvorlage_erstellen
DIM Doc As Object
DIM MyPageStyle As Object
DIM HText As Object
DIM HContent As Object
DIM FooterCursor As Object
DIM PageNumber As Object
DIM StdPage As Object
oDoc = StarDesktop.CurrentComponent
'neue Zellformatvorlage erstellen und Formatierungen festlegen
MyPageStyle = oDoc.createInstance( "com.sun.star.style.PageStyle" )
oDoc.getStyleFamilies().getByName( "PageStyles" ).insertByName( "kopf_ein", oMyStyle )
'>>> Querformat *ein*
MyPage.IsLandscape = True
'>>> Randabstand setzen, jeweils 1cm
MyPageStyle.LeftMargin = 1000
MyPageStyle.RightMargin = 1000
MyPageStyle.TopMargin = 1000
MyPageStyle.BottomMargin = 1000
'>>> Kopfzeile *ein*
MyPageStyle.HeaderIsOn = True
'>>> Abstand Kopfzeile zum Rest *0,5cm* und *dynamische Höhe*
MyPageStyle.HeaderBodyDistance = 500
MyPageStyle.HeaderIsDynamicHeight = True
'>>> Hintergrund *transparent*
MyPageStyle.HeaderBackTransparent = True
'>>> Obere Linie mit Abstand 0,1cm setzen
MyPageStyle.HeaderTopBorderDistance = 100
'>>> Inhalt Kopfzeile *RECHTS*, Datum wird eingetragen
HContent = MyPageStyle.RightPageHeaderContent
HText = HContent.RightText
HText.String = "Stand: " + Date
MyPageStyle.RightPageHeaderContent = HContent
'>>> Inhalt Kopfzeile *LINKS*
HContent = MyPageStyle.RightPageHeaderContent
HText = HContent.LeftText
HText.String = "Name, Adresse"
MyPageStyle.RightPageHeaderContent = HContent
'>>> Inhalt Kopfzeile *MITTE*
' !!! hier fehlt noch was !!!
'>>> Fußzeile *ein*
MyPageStyle.FooterIsOn = True
'>>> Abstand Fußzeile zum Inhalt *0,25cm* und *dynamische Höhe*
MyPageStyle.FooterBodyDistance = 250
MyPageStyle.FooterIsDynamicHeight = True
'>>> Hintergrund *transparent*
MyPageStyle.FooterBackTransparent = True
'>>> Inhalt Fußzeile *RECHTS* - Seitenzahl fehlt noch
HContent = MyPageStyle.RightPageFooterContent
HText = HContent.RightText
HText.String = "Seite"
MyPageStyle.RightPageFooterContent = HContent
'So sollte die Seitenzahl lt Basic-Hilfe eingetragen werden, funktioniert aber nicht
Doc = StarDesktop.CurrentComponent
PageNumber = Doc.createInstance("com.sun.star.text.TextField.PageNumber")
PageNumber.NumberingType = com.sun.star.style.NumberingType.ARABIC
FooterCursor = StdPage.FooterTextLeft.Text.createTextCursor()
StdPage.FooterTextLeft.Text.insertTextContent(FooterCursor, PageNumber, False)
end sub
Fußzeile und Seitenzahlen per Makro
Moderator: Moderatoren
Code: Alles auswählen
Sub seitenvorlage_erstellen
DIM Doc As Object
DIM MyPageStyle As Object
DIM HText As Object
DIM HContent As Object
DIM FooterCursor As Object
DIM PageNumber As Object
DIM StdPage As Object
oDoc = StarDesktop.CurrentComponent
'neue Zellformatvorlage erstellen und Formatierungen festlegen
MyPageStyle = oDoc.createInstance( "com.sun.star.style.PageStyle" )
oDoc.getStyleFamilies().getByName( "PageStyles" ).insertByName( "kopf_ein", MyPageStyle )
'>>> Querformat *ein*
MyPageStyle.IsLandscape = True
'>>> Randabstand setzen, jeweils 1cm
MyPageStyle.LeftMargin = 1000
MyPageStyle.RightMargin = 1000
MyPageStyle.TopMargin = 1000
MyPageStyle.BottomMargin = 1000
'>>> Kopfzeile *ein*
MyPageStyle.HeaderIsOn = True
'>>> Abstand Kopfzeile zum Rest *0,5cm* und *dynamische Höhe*
MyPageStyle.HeaderBodyDistance = 500
MyPageStyle.HeaderIsDynamicHeight = True
'>>> Hintergrund *transparent*
MyPageStyle.HeaderBackTransparent = True
'>>> Obere Linie mit Abstand 0,1cm setzen
MyPageStyle.HeaderTopBorderDistance = 100
'>>> Inhalt Kopfzeile *RECHTS*, Datum wird eingetragen
HContent = MyPageStyle.RightPageHeaderContent
HText = HContent.RightText
HText.String = "Stand: " + Date
MyPageStyle.RightPageHeaderContent = HContent
'>>> Inhalt Kopfzeile *LINKS*
HContent = MyPageStyle.RightPageHeaderContent
HText = HContent.LeftText
HText.String = "Name, Adresse"
MyPageStyle.RightPageHeaderContent = HContent
'>>> Inhalt Kopfzeile *MITTE*
' !!! hier fehlt noch was !!!
'>>> Fußzeile *ein*
MyPageStyle.FooterIsOn = True
'>>> Abstand Fußzeile zum Inhalt *0,25cm* und *dynamische Höhe*
MyPageStyle.FooterBodyDistance = 250
MyPageStyle.FooterIsDynamicHeight = True
'>>> Hintergrund *transparent*
MyPageStyle.FooterBackTransparent = True
'>>> Inhalt Fußzeile *RECHTS* - Seitenzahl fehlt noch
HContent = MyPageStyle.RightPageFooterContent
HText = HContent.RightText
'##########################
'Fußzeile rechts
'##########################
HText.setstring("")
oCursor = HText.createTextCursor()
HText.insertstring(oCursor, "Seite ", False)
oCursor = HText.createTextCursor()
oCursor.GoRight(6,false)
oField = oDoc.createInstance("com.sun.star.text.TextField.PageNumber")
HText.insertTextContent(oCursor, oField, False)
oCursor = HText.createTextCursor()
oCursor.GoRight(7,false)
HText.insertstring(oCursor, " von ", False)
oField = oDoc.createInstance("com.sun.star.text.TextField.PageCount")
HText.insertTextContent(oCursor, oField, False)
MyPageStyle.RightPageFooterContent = HContent
end sub
Stephan