Benutzter Zellbereich in Zwischenablage kopieren

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Clousi
*
Beiträge: 10
Registriert: So, 22.08.2021 12:26

Benutzter Zellbereich in Zwischenablage kopieren

Beitrag von Clousi »

Hallo zusammen

ich bin wieder einmal ;).

Ich würde gerne den gesamten benutzten Zellbereich des aktiven Arbeitsblattes markieren und in die Zwischenablage kopieren (um von dort händisch in einer anderen Arbeitsmappe einzufügen).

Ich habe mit meinen sehr beschränkten Basic Kenntnissen schon Einiges versucht, aber komme auf keinen grünen Zweig.

Kann mir jemand helfen? Vielen Dank im Voraus!
Clousi

MacOS BigSur
OpenOffice 4.1.10
mikeleb
*******
Beiträge: 1316
Registriert: Fr, 09.12.2011 16:50

Re: Benutzter Zellbereich in Zwischenablage kopieren

Beitrag von mikeleb »

Hallo,
warum per Makro? Alles markieren und kopieren sind mit wenigen Tastenkombinationen erledigt ...
Ansonsten siehe z. B. hier https://www.uni-due.de/~abi070/files/OO ... eutsch.pdf Kapitel 11.3
Gruß,
mikeleb
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Benutzter Zellbereich in Zwischenablage kopieren

Beitrag von 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: 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
Clousi
*
Beiträge: 10
Registriert: So, 22.08.2021 12:26

Re: Benutzter Zellbereich in Zwischenablage kopieren

Beitrag von Clousi »

Vielen Dank, Stephan. Auch das klappte auf Anhieb.
Immer wieder eine Freude ;)
Antworten