Hallo,
ich habe hier im Forum vor einigen Tagen zu folgendem Problem um Hilfe gesucht: "Tabellenbreite und Breite einer Tabellenspalte in einem Textdokument ändern".
Hier ist nun eine Lösung, vielleicht kann sie ja jemand brauchen.
Da ich mich nicht mit fremden Federn schmücken will, voher noch die Quellen, aus denen ich das ganze zusammengebastelt habe:
Spaltenbreite in einer neu erstellten Tabelle ändern:
http://www.oooforum.org/forum/viewtopic ... 2205#12205
Tabellenränder in einer neu erstellten Tabelle rechts und links verschieben:
http://api.openoffice.org/docs/common/r ... Table.html
Einfügen von neuen Spalten in eine Tabelle:
Basic-Programmierhandbuch von Sun
Sub Breite
Dim Doc as Object
Dim TextTables as Object
Dim Table as Object
Dim Col as Object
dim Spalt as Object
Dim I as Integer
Dim Inputval as integer
dim Zahl as Integer
dim TabelZaehler as Integer
dim ViewCursor as Object
dim oText as Object
dim TblColSeps
Doc = StarDesktop.CurrentComponent
TextTables = Doc.getTextTables()
'Inputbox Minimalwert 1 Maximalwert 4
'inputval Anzahl der einzufügenden Spalten
inputval = inputbox("","Bitte nur Zahlen eingeben zwischen 1 und 4 eingeben","Geben Sie die Zahl ein")
if inputval < 1 or Inputval > 4 then
msgbox "Bitte nur Zahlen zwischen 1 und 4 eingeben"
exit sub
end if
'Anzahl der Schleifendurchläufe anhand
'der Tabellenzahl
Zahl = TextTables.count()
for TabelZaehler = 0 to (Zahl - 1)
Table = TextTables(TabelZaehler)
I = 0
Col = TextTables(TabelZaehler).getColumns
'Anzahl der Spalten in der Tabelle
I = Col.getcount()
'Einfügen von Wert-Inputval Spalten nach der I-ten Spalte
Table.columns.insertByIndex(I,Inputval)
'linken Tabellenrand 3 cm (=3000 100stel mm)
'rechten Tabellenrand 3,5 cm vom Textrand einrücken
'ACHTUNG Tabellenausrichtung muss auf manuell gestellt sein!!
Table.LeftMargin = 3000
Table.RightMargin = 3500
ViewCursor = Doc.getCurrentController().getViewCursor()
TblColSeps = Table.TableColumnSeparators
'Abstand des rechten Randes der ersten Spalte vom Textrand
TblColSeps( 0 ).Position = 5000
'Spaltenrand versetzen
Table.TableColumnSeparators = TblColSeps
next TabelZaehler
End Sub
Gruß
Herbert
P.S.
Das Ganze ist natürlich noch ausbaufähig
Tabellenspalte und -breite in Textdokument ändern - Lösung
Moderator: Moderatoren