LO6 breite mehrerer spalten per makro ändern

Alles zur Programmierung im LibreOffice.
Antworten
gorgonz
Beiträge: 23
Registriert: Sa 13. Aug 2011, 23:22

LO6 breite mehrerer spalten per makro ändern

Beitrag von gorgonz » Sa 5. Jan 2019, 00:10

Ich möchte mehreren Spalten (die nicht hintereinander liegen) eine neue Breite geben.

Kann mir da jemand weiterhelfen? Eigentlich sollte es einfach sein, aber ich komme mit LO BASIC immer noch nicht zurecht.

Hab erst mal ein Makro aufgezeichnet und darin den Befehl für die Spaltenbreite vorgefunden, es fehlt aber der Code, um erstmal Spalten auszuwählen, hier mal die Aufzeichnung zu einer Spalte:

Code: Alles auswählen

sub Spaltenbreite
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ColumnWidth"
args1(0).Value = 2000

dispatcher.executeDispatch(document, ".uno:ColumnWidth", "", 0, args1())
end sub
Habt ihr eine Idee für mich?

Vorab schon mal vielen Dank für Tipps dazu :-)
OpenSUSE leap 15-64, LibreOffice 6.1.3.2



mikele
Beiträge: 879
Registriert: Mo 1. Aug 2011, 20:51

Re: LO6 breite mehrerer spalten per makro ändern

Beitrag von mikele » Sa 5. Jan 2019, 13:44

Hallo,
Ideen gibt es sicher viele.
Hier mal eine Variante:

Code: Alles auswählen

Sub spaltenbreite
	'Zugriff auf das Dokument
	oDoc=ThisComponent
	'Zugriff auf das 1. Tabellenblatt, interne Zählung beginnt bei 0!
	oTab=oDoc.sheets(0)
	'Festlegung der Spalten die geändert werden sollen in einem Array
	aSp=Array(1,3,4,7,9)
	'Durchlauf durch das Array
	for i=0 to ubound(aSp)
		oTab.Columns(aSp(i)).width=2000
	next
End Sub
Mehr Informationen findest du z. B. hier: http://www.dannenhoefer.de/faqstarbasic ... reife.html
Gruß,
mikele

gorgonz
Beiträge: 23
Registriert: Sa 13. Aug 2011, 23:22

Re: LO6 breite mehrerer spalten per makro ändern

Beitrag von gorgonz » Sa 5. Jan 2019, 17:59

Wunderbar Mikele, vielen Dank, das hat auf Anhieb funktioniert und mir sehr geholfen :-)

Ich würde ja gerne lernen, besser damit umzugehen, aber das "Objektmodell" ist so undurchsichtig für mich, dass ich bei jeder Aufgabe nicht weiß, über welchen Objekt-Weg ich "navigieren" soll, um das Gewünschte zu erreichen.

Nur mal so nebenbei gefragt: so was wie eine IDE, die einem nach Eingabe eines "." Vorschläge macht, welche Methoden oder Properties jetzt möglich sind, gibt es das?

Noch einer: Habe versucht, in Writer rudimentär aufzuschreiben, welches Objekt was anbietet. Dabei gemerkt, wenn ich zB "Shee" eingebe, dann wird mir als Tooltipp "Sheet.columns" vorgeschlagen oder bei "Sheets" der ToolTipp "Sheets.getByIndex". Irgendwas scheint da schon zu existieren. Ist das bei euch auch so?
OpenSUSE leap 15-64, LibreOffice 6.1.3.2

mikele
Beiträge: 879
Registriert: Mo 1. Aug 2011, 20:51

Re: LO6 breite mehrerer spalten per makro ändern

Beitrag von mikele » So 6. Jan 2019, 12:18

Hallo,
neben den verschiedenen Quellen (siehe hier: https://de.openoffice.info/viewtopic.php?f=18&t=1553) ist es praktisch unerlässlich einen Objektinspektor zu installieren, der dir genau das liefert: welche Eigenschaften/Methoden unterstützt das Objekt.
Ich persönlich nutze MRI: https://extensions.openoffice.org/de/pr ... ction-tool
Alternativ XRAY: http://berma.pagesperso-orange.fr/index2.html
Gruß,
mikele



Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast