Seite 1 von 1

[gelöst] CALC-Zellen per makro formatieren

Verfasst: Sa 20. Jan 2018, 20:42
von wega
Hallo zusammen,

auch dieses Thema ist weitgehendst durchgeknetet, dennoch
gibt es offene Fragen.

Das erste Bild stellt eine Formatierung der Zellen mit
CALC-Funktionen dar, wie sie beim normalen Benutzen des
Programms möglich sind (ohne Makro) nur mit Maus.
Clac-Zellen.jpg
Clac-Zellen.jpg (49.79 KiB) 6740 mal betrachtet
Ich habe die Mausklicks mal umrandet. erst die Mitte, dann
den Umbruch.

Im 2.ten Bild das Ergebnis der nachfolgenden Makrosequenz.
Clac-Zellen-01.jpg
Clac-Zellen-01.jpg (19 KiB) 6740 mal betrachtet
Und jetzt die Makrosequenz:

Code: Alles auswählen

'Die Übererschriften werden formatiert
Tabelle.getCellRangeByName("A3:D3").CharFontName="Comic Sans MS"
Tabelle.getCellRangeByName("A3:D3").CharHeight="12"
Tabelle.getCellRangeByName("A3:D3").CharWeight=com.sun.star.awt.FontWeight.BOLD
'Überschriften positionieren
'horijustify=1 <- links
'horijustify=2 <- mitte
'horijustify=3 <- rechts
'horijustify=4 <- umbrochen
Tabelle.getCellRangeByName("A3:D3").horijustify=4
Wie muß die Sequenz aussehen, damit der Text wirlich, trotz Umbruch in der
Mitte der Zelle steht?

Gruß
Werner

Re: CALC-Zellen per makro formatieren

Verfasst: So 21. Jan 2018, 10:36
von F3K Total
Moin,
so geht's:

Code: Alles auswählen

Sub Main
    Tabelle = ThisComponent.Sheets(0)
    CellRange = Tabelle.getCellRangeByName("A3:D3")
    CellRange.CharFontName="Comic Sans MS"
    CellRange.CharHeight="12"
    CellRange.CharWeight=com.sun.star.awt.FontWeight.BOLD
    'Überschriften positionieren
    'horijustify=1 <- links
    'horijustify=2 <- mitte
    'horijustify=3 <- rechts
    'horijustify=4 <- nicht nur umbrochen -->Blocksatz
    CellRange.horijustify = 2'Mittig
    CellRange.IsTextWrapped = true'Umbruch
End Sub
Gruß R

Re: CALC-Zellen per makro formatieren

Verfasst: So 21. Jan 2018, 10:41
von preklov
Hallo Werner,

Im Allgemeinen sollte man Enumerationen nicht mit ihrem Wert, sondern mit ihrem Namen verwenden, schreiben die Entwickler. Also wohl besser:

Code: Alles auswählen

.HoriJustify = com.sun.star.table.CellHoriJustify.CENTER
Klappt es?

Re: CALC-Zellen per makro formatieren

Verfasst: So 21. Jan 2018, 10:49
von F3K Total
Hallo Volker,
da hast Du Recht, was aber vor Allem fehlte, war

Code: Alles auswählen

.IsTextWrapped = true
Verbessert also so:

Code: Alles auswählen

Sub Main
    Tabelle = ThisComponent.Sheets(0)
    CellRange = Tabelle.getCellRangeByName("A3:D3")
    CellRange.CharFontName="Comic Sans MS"
    CellRange.CharHeight="12"
    CellRange.CharWeight=com.sun.star.awt.FontWeight.BOLD
    'Überschriften positionieren
    'horijustify=1 <- links
    'horijustify=2 <- mitte
    'horijustify=3 <- rechts
    'horijustify=4 <- nicht nur umbrochen -->Blocksatz
    CellRange.horijustify = com.sun.star.table.CellHoriJustify.CENTER'Mittig
    CellRange.IsTextWrapped = true'Umbruch
End Sub
Gruß R

Re: CALC-Zellen per makro formatieren

Verfasst: So 21. Jan 2018, 11:09
von preklov
Ja klar, IsTextWrapped ist die Lösung. Ich hatte das schon geschrieben, doch du warst 3 Minuten schneller, so habe ich es wieder gelöscht.

Re: CALC-Zellen per makro formatieren

Verfasst: So 21. Jan 2018, 11:52
von wega
Hallo F3K Total, hallo preklov,

danke für eure Antworten und Erklärungen.
Das hat mir geholfen und hat auch wie gewünscht
funktioniert.

Auf solch eine Lösung wäre ich nie gekommen.
Wo holt Ihr diese informationen ein?

Mit Gruß
Werner

Re: CALC-Zellen per makro formatieren

Verfasst: So 21. Jan 2018, 12:30
von F3K Total
wega hat geschrieben:
So 21. Jan 2018, 11:52
Wo holt Ihr diese informationen ein?
Ich empfehle Dir die Verwendung eines Introspection-Tools wie MRI oder Xray
Damit kannst Du alle OOo-Dokumente hinsichtlich ihres Aufbaues durchleuchten.
In deinem Fall habe ich den Zellbereich, einmal mit, und einmal ohne händisch eingestellten Zeilenumbruch mit Xray untersucht

Code: Alles auswählen

Xray CellRange
der Unterschied war

Code: Alles auswählen

.IsTextWrapped = true
oder

Code: Alles auswählen

.IsTextWrapped = false
Gruß R

Re: CALC-Zellen per makro formatieren

Verfasst: So 21. Jan 2018, 12:35
von preklov
Auch wenn es ein Link auf eine OO-Site ist, so sind die Unterschiede in der Makroprogrammierung zwischen AOO und LO noch gering. Hier sind viele Quellen aufgeführt:

http://de.openoffice.info/viewtopic.php?f=18&t=1553

Re: CALC-Zellen per makro formatieren

Verfasst: So 21. Jan 2018, 12:57
von wega
Hallo,

ein Danke an euch beiden.

Gruß Werner