Fußzeile und Seitenzahlen per Makro

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

mecki_45
***
Beiträge: 69
Registriert: Mo, 23.02.2004 17:28

Fußzeile und Seitenzahlen per Makro

Beitrag von mecki_45 »

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
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

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
Gruß
Stephan
mecki_45
***
Beiträge: 69
Registriert: Mo, 23.02.2004 17:28

Beitrag von mecki_45 »

Hi Stephan,

Danke, funktioniert bestens

Grüßle
Alex
Antworten