Nie przepadam za tym stylem programowania, ale nic lepszego nie znalazłem w swojej kolekcji.
Kod: Zaznacz cały
Sub KopiujWklejSpecjalnie
Dim oFrame as object
Dim dispatcher as object
'
oFrame = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
'
Dim oArgs1(0) as new com.sun.star.beans.PropertyValue
oArgs1(0).Name = "ToPoint"
oArgs1(0).Value = "$A$1"'kopiowana
dispatcher.executeDispatch(oFrame, ".uno:GoToCell", "", 0, oArgs1())
dispatcher.executeDispatch(oFrame, ".uno:Copy", "", 0, Array())
'
Dim oArgs2(0) as new com.sun.star.beans.PropertyValue
oArgs2(0).Name = "ToPoint"
oArgs2(0).Value = "$B$1"'tu zostanie wklejone
dispatcher.executeDispatch(oFrame, ".uno:GoToCell", "", 0, oArgs2())
'
Dim oArgs3(5) as new com.sun.star.beans.PropertyValue
oArgs3(0).Name = "Flags"
oArgs3(0).Value = "FT" 'flagi, Teraz zostanie wklejony tylko format i formuła
oArgs3(1).Name = "FormulaCommand"
oArgs3(1).Value = 0
oArgs3(2).Name = "SkipEmptyCells"
oArgs3(2).Value = false
oArgs3(3).Name = "Transpose"
oArgs3(3).Value = false
oArgs3(4).Name = "AsLink"
oArgs3(4).Value = false
oArgs3(5).Name = "MoveMode"
oArgs3(5).Value = 4
dispatcher.executeDispatch(oFrame, ".uno:InsertContents", "", 0, oArgs3())
'
msgbox "Skopiowane..."
End Sub
'
' [ Wartości flag]
' S : String ( tekst )
' V : Value ( Wartość )
' D : Date ( Data )
' F : Formula (Formuła )
' N : Note ( Komentarz )
' T : Format ( formaty )
' Pusty : Object ( Obiekt )
' A : Wszystko