[gelöst] Makro Code für Einstellung der Seitenränder

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Mark in AB
Beiträge: 4
Registriert: Do, 14.03.2019 12:31

[gelöst] Makro Code für Einstellung der Seitenränder

Beitrag von Mark in AB » Do, 14.03.2019 13:39

Hallo,
ich bin auf der Suche nach einem Makro Code zu Einstellung der Seitenränder für ein Calc-Dokument.
Diese sind über Format-Seite-Seitenränder zu erreichen.
Aber wie geht das von einem Makro aus?

Vielen Dank schon mal!

Mark
Zuletzt geändert von Mark in AB am Fr, 29.03.2019 11:25, insgesamt 1-mal geändert.

Gast Jahn

Re: Makro Code für Einstellung der Seitenränder

Beitrag von Gast Jahn » Do, 14.03.2019 16:08

Hallo Mark,

lese auch die Kommentare im Code:

Code: Alles auswählen

REM  *****  BASIC  *****

Sub SeiteFormatieren
Dim oDoc as Object
Dim oStyles as Object
Dim oStyle as Object
Dim oPageStyle as Object

REM ----------------------------------------------------------------------------------------------
REM Seite skalieren
 oStyles = oDocC.CurrentController.getActiveSheet().PageStyle
  oStyle = oDocC.StyleFamilies.getByName("PageStyles").getByName(oStyles)
'  oStyle.PageScale = 75		'Seiten-Skalierung ---> 75% 

	StyleFamilies = oDocC.StyleFamilies
	PageStyles = StyleFamilies.getByName("PageStyles")
		' Dies greift auf die "Standard" Seitenvorlage zu
		' Falls eine benutzerdefinierte Seitenvorlage verwendet wird,
		' dann: PageStyles.getByName("Standard")
		' ändern in z.B.: PageStyles.getByName("MeinVorlagenname")
		oPageStyle = PageStyles.getByName("Standard")
' mri oPageStyle	
' xray  oPageStyle
REM ----------------------------------------------------------------------------------------------
REM Seite formatieren
REM Maßangaben =1/1000
REM 29700 = 29,70cm
REM 500= 0,5cm
		With oPageStyle
REM................................................
REM Querformat
'			.IsLandscape = True		' TRUE = Querformat
'			.Width = 29700			' Seitenbreite DIN-A4
'			.Height = 21000			' Seitenhöhe DIN-A4
'REM Seitenränder
'			.TopMargin=1000			' OBEN
'			.BottomMargin=500		' UNTEN
'			.LeftMargin=500			' LINKS
'			.RightMargin=500		' RECHTS
REM............................................
REM Hochformat
			.IsLandscape = False	' FALSE = Portrait/ Hochformat	
			.Width = 21000			' Seitenbreite DIN-A4
			.Height = 29700			' Seitenhöhe DIN-A4
REM Seitenränder			
			.TopMargin=1000			' OBEN
			.BottomMargin=500		' UNTEN
			.LeftMargin=1500		' LINKS
			.RightMargin=500		' RECHTS
REM............................................			
REM Kopzeile AN oder AUS
REM 
			.HeaderIsOn=True			' Kopfzeile = AN
			.HeaderIsShared = True		' Gleicher Inhalt auf rechten und linken Seiten
REM Seiteninhalt zentrieren
			.CenterHorizontally=True	' horizontal zentrieren TRUE= JA
			.CenterVertically=False		' vertikal zentrieren FALSE=NEIN
'			.PageScale=75				' Seite auf 75% skalieren, wenn Text nicht auf ein DIN-A4 BLatt paßt
		End With
End Sub


Gruß

Jahn

WiM

Re: Makro Code für Einstellung der Seitenränder

Beitrag von WiM » Do, 14.03.2019 17:36

Hallo Jahn,

ich habe Dein Makro ausprobiert. Nach Beseitigung einiger Tippfehler ... funktionierte es wie gewünscht.
Nachstehend der betreffende Abschnit mit den Änderungen:

Dim oDoc as Object
Dim sStyles as String 'geändert von oStyles (Object) in sStyles (String)
Dim oStyle as Object
Dim oPageStyle as Object

oDoc = ThisComponent 'hinzugefügt

REM ----------------------------------------------------------------------------------------------
REM Seite skalieren
sStyles = oDoc.CurrentController.getActiveSheet().PageStyle 'oStyles geändert in sStyles und oDocC geändert in oDoc
' MsgBox sStyles 'nur zum testen
' Exit Sub 'nur zum testen
oStyle = oDoc.StyleFamilies.getByName("PageStyles").getByName(oStyles) 'oDocC geändert in oDoc
' oStyle.PageScale = 75 'Seiten-Skalierung ---> 75%

StyleFamilies = oDoc.StyleFamilies 'oDocC geändert in oDoc

Ich hoffe, daß Du und Mark etwas damit anfangen könnt.

Gruß Wim

Gast Jahn

Re: Makro Code für Einstellung der Seitenränder

Beitrag von Gast Jahn » Do, 14.03.2019 18:16

@Wim
Danke für die Korrektur.

Habe einen alten Code kopiert, bei dem ich schonmal über diese Fehler gestolpert bin.
Blindes copy 'n paste und dann noch ungetestet, ne wie peinlich :)

Gruß

Jahn

Gast

Re: Makro Code für Einstellung der Seitenränder

Beitrag von Gast » Do, 14.03.2019 19:55

Hallo Jahn,

ich habe gerade bemerkt, daß ich im nachfolgenden Codeschnipsel oStyles nicht in sStyles geändert habe.

oStyle = oDoc.StyleFamilies.getByName("PageStyles").getByName(sStyles) 'oStyles nachtr. geä. in sStyles 'oDocC geä. in oDoc

Gruß Wim

Mark in AB
Beiträge: 4
Registriert: Do, 14.03.2019 12:31

Re: Makro Code für Einstellung der Seitenränder

Beitrag von Mark in AB » Fr, 15.03.2019 09:02

Prima,
vielen Dank für die Hilfe!

Es ist mehr drin, als ich erwartet hatte.

Zwei Variablen habe ich noch deklariert:
Dim oPageStyles as Object
Dim oStyleFamilies as Object

und PageStyles in oPageStyles
und StyleFamilies in oStyleFamilies geändert (nur Kosmetik)


Viele Grüße
Mark

Antworten