ich möchte in CALC das komplette Zellenformat eines Tabellenbereiches von Tabelle B nach Tabelle A per Makro kopieren.
D.h. Schriftart, Hintergrundfarbe, Zahlenformat usw.
Dies funktioniert wunderbar per Hand mit dem "Pinselsymbol FORMAT ÜBERTRAGEN".
Ich habe daher ein Macro für diesen Vorgang aufgezeichnet (zuerst wird noch eine Zellverbindungen gelöst, daher mehr Zeilen).
Kurze Erläuterung des Makros:
- über args(3) wird in die Tabelle 7 gesprungen (dort habe ich das Wunsch-Zellformat im Bereich $E$23:$K$23 abgelegt)
- bei args(4) wird dies offenbar markiert
- args(5) gibt es nicht und der nächste Befehl ist auskommentiert. HIER würde ich vermuten, dass der Befehl "Format übertragen" hineingehört
- bei args(6) wird in die Zieltabelle zurückgesprungen. Auch hier fehlt die Angabe des Zielberichs (sollte ebenso $E$23:$K$23 sein)
Wie gesagt, auch während der Macroaufzeichnung funktionierte alles wie gewünscht!
Meines Erachtens ist die Makroaufzeichnung daher für die Funktion "Format übertragen" ungenügend oder täusche ich mich?
Wie heißt der Basic-Befehl für das Kopieren des Zellformates?
Danke vorab!
[OOVersion 3.0.0; Windows2000)
Code: Alles auswählen
sub copyZellformat
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 = "ToPoint"
args1(0).Value = "$E$23:$K$23"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:ToggleMergeCells", "", 0, Array())
rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "Nr"
args3(0).Value = 7
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args3())
rem ----------------------------------------------------------------------
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "ToPoint"
args4(0).Value = "$E$23:$K$23"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args4())
rem ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:FormatPaintbrush", "", 0, Array())
rem ----------------------------------------------------------------------
dim args6(0) as new com.sun.star.beans.PropertyValue
args6(0).Name = "Nr"
args6(0).Value = 2
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args6())
end sub