von Stephan » So, 29.08.2021 14:04
ich würde das pragmatischerweise mit dem Makrorekorder aufzeichnen und also sog. dispatchercode verwenden, WEIL Du das Kopieren ohnehin sinnvollerweise per dispatcher machen musst.
Das gibt dann:
Code: Alles auswählen
sub Main
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 = "Sel"
args1(0).Value = false
dispatcher.executeDispatch(document, ".uno:GoToEndOfData", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Sel"
args2(0).Value = true
dispatcher.executeDispatch(document, ".uno:GoToStart", "", 0, args2())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
end sub
Vorstehender Code markiert immer den Zellbereich mit Zelle A1 als linker oberer Ecke und der Zelle die der letzten benutzten Spalte und Zeile entspricht als rechter-unterer Ecke.
Gruß
Stephan
ich würde das pragmatischerweise mit dem Makrorekorder aufzeichnen und also sog. dispatchercode verwenden, WEIL Du das Kopieren ohnehin sinnvollerweise per dispatcher machen musst.
Das gibt dann:
[code]sub Main
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 = "Sel"
args1(0).Value = false
dispatcher.executeDispatch(document, ".uno:GoToEndOfData", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Sel"
args2(0).Value = true
dispatcher.executeDispatch(document, ".uno:GoToStart", "", 0, args2())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
end sub[/code]
Vorstehender Code markiert immer den Zellbereich mit Zelle A1 als linker oberer Ecke und der Zelle die der letzten benutzten Spalte und Zeile entspricht als rechter-unterer Ecke.
Gruß
Stephan