Ich kenne auch keinen nativen Code, jedoch:
Hierfür feht mir eine Idee wie ich das machen soll.
Naja, wie würdest Du es denn per Hand machen?
Das aufzuzeichnen gibt sowas hier:
Code: Alles auswählen
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(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "DocName"
args1(0).Value = "jms1"
args1(1).Name = "Index"
args1(1).Value = 2
args1(2).Name = "Copy"
args1(2).Value = true
dispatcher.executeDispatch(document, ".uno:Move", "", 0, args1())
Wenn Du es selbst aufzeichnest kannst Du leicht nachvollziehen das:
natürlich (in 1.1.x) nur der Dokumentname ist wenn das Dokument unter Eigenschaften bei "Titel" keinen Eintrag hat
Da im Dialog nur der Punkt "einfügen vor" verfügbar ist und einfügen vor <x> als Index wieder <x> ergibt
Ja und damit hast Du alles, Du mußt nur:
*das zu kopierende Blatt aktivieren
*den Titel des Zieldokuments wissen
*wissen wo Du einfügen willst
*den obenstehenden Code ausführen
somit:
Code: Alles auswählen
Sub kopieren()
'das zu kopierende Blatt aktivieren
Sheet = ThisComponent.Sheets.getByName("Beispiel")
ThisComponent.CurrentController.setActiveSheet(Sheet)
'den Titel des Zieldokuments wissen
'-->zunächst öffnen:
Dim Dummy()
sUrl = convertToURL("C:\Datei.sxc") 'die zweite Datei
oDok2 = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, Dummy())
'-->Titel oder nicht?
If oDok2.getDocumentInfo.title <> "" Then
titel = oDok2.getDocumentInfo.title
Else
i = 4
Do
i = i + 1
a = Right(oDok2.URL, i)
Loop While Left(a,1)<>"/"
titel = Right(a, LEN(a)-1)
end if
'wissen wo Du einfügen willst
'weiß ich auch nicht, z.B.:
pos = 1 'ganz links
'den obenstehenden Code ausführen
dim document as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
Dim args1(2) as new com.sun.star.beans.PropertyValue
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
args1(0).Name = "DocName"
args1(0).Value = titel
args1(1).Name = "Index"
args1(1).Value = pos
args1(2).Name = "Copy"
args1(2).Value = true
dispatcher.executeDispatch(document, ".uno:Move", "", 0, args1())
End Sub
Gruß
Stephan