Seite 1 von 1

Calc: Copy / Past Zelleninhalt - Zelleneigenschaften?

Verfasst: Sa, 09.01.2010 22:29
von Hans Louis
Hallo Fachfrauen und Fachmänner

Ich habe Code für Copy / Past auf 2 Arten geschrieben: via System-Clipboard ( XX_getTransferDate = selektierterInhalt / strContentClipboard = objDataObject.getTransferData(objDataTypSeq(0)) ) sowie mit Hilfe eines Array ( arrDataCopied = objQuelle.getDataArray() / objZiel.setDataArray(arrDataCopied()) ). Beides funktioniert einwandfrei. Aber damit wird nur der reine Text kopiert / eingefügt.

Kann mir jemand auf die Sprünge helfen, wie man gleichzeitig auch die Zell-Eigenschaften (CharColor, CharFontName, CharHeight etc. ) transferieren kann? Ich habe dafür gar keine Anhaltspunkte gefunden. Schlussendlich sollte es funktionieren wie CTRL/C und CTRL/V. Da ich mich auf dem Gebiet der OO-Programmierung noch zu den Anfängern zähle, wäre ich natürlich äusserst dankbar für ein Code-Beispiel.

Schon jetzt herzlichen Dank für Euren Aufwand! Hans Louis

Re: Calc: Copy / Past Zelleninhalt - Zelleneigenschaften?

Verfasst: So, 10.01.2010 09:41
von peterschleif
Hallo Hans.

Um Zellen innerhalb von Calc zu kopieren brauchst Du die Zwischenablage nicht. Dafür gibt es copyRange()

Code: Alles auswählen

Sub ZellenKopieren()
    Dim oQuelle As Object
    Dim oZiel   As Object

    With ThisComponent.Sheets(0)
        oQuelle = .getCellRangeByName("A1:C5")
        oZiel   = .getCellRangeByName("E7")
        .copyRange(oZiel.CellAddress, oQuelle.RangeAddress)
    End With
End Sub
Siehe auch: http://wiki.services.openoffice.org/wik ... and_Ranges

Peter

Re: Calc: Copy / Past Zelleninhalt - Zelleneigenschaften?

Verfasst: So, 10.01.2010 10:50
von Hans Louis
Guten Tag Peter

Vielen Dank für die schnelle Reaktion auf meine Frage. Ich muss etwas ausholen. Ich bin daran zu ergründen (Learning by doing), wie man in Calc das machen kann, was ich anderswo (u.a. Visual Basic, VBA, Java etc) schon praktisch angewendet habe. CopyRange hat den Nachteil, dass es nur innerhalb des geöffneten Calc-Dokumentes angewendet werden kann. (Für internes Kopieren ist es sicher die beste Lösung). Ich bin deshalb nach wie vor interessiert an einer Clipboard-Lösung. Eine praktische Anwendung könnte so aussehen: Ich mache in Calc per Code eine Auswertung und möchte am Schluss das Resultat (Zellenbereich) im Clipboard haben, damit ich es irgendwo anders mit CTRL/V sofort einfügen kann. Dies wo auch immer: IWriter, Word, Excel, Grid von VB-Applikationen. Das funktioniert mit CTRL/C / CTRL/V ja super.

Nochmals vielen Dank und beste Grüsse Hans Louis