von idefix2 » Do, 27.04.2017 00:46
Was der Makrorecorder aufzeichnet, ist noch frustrierender als ich erwartet habe:
Code: Alles auswählen
REM ***** BASIC *****
sub NeueZeile
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 ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:InsertRows", "", 0, Array())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
end sub
Er zeichnet offenbar überhaupt keine Mausaktionen auf - Das Makro markiert daher nichts, kopiert nichts, pastet nichts .... pfff
Das einzige, was das aufgezeichnete Makro macht, wenn man es aufruft: es fügt eine neue leere Zeile an der Cursorposition ein, Die Befehle für das Copy und das Paste stehen zwar im Makrotext, aber ohne sinnvolle Parameter, und daher tun sie natürlich auch nichts sinnvolles.
Es müsste die aktuelle Zeile erkennen und sich merken, dann die Zeile 3 markieren und in die Zwischenablage kopieren, dann wieder zur gemerkten Zeile zurückgehen, eine leere Zeile einfügen und dort die vorher in die Zwischenablage kopierten Zellen eintragen. Anhand dieses über den Makrorecorder aufgezeichneten Makros komme ich überhaupt nicht weiter.
Ich weiß gar nicht, ob und wie ich eine Zeile ohne Maus per Tastatur markieren kann, aber selbst wenn ich das hinbringen würde (das wird wohl irgendwo in der Dokumentation zu finden sein) und so den Makrorecorder davon überzeugen könnte, dass die Zeile 3 zu markieren ist - wie erfährt das Makro, in welcher Zeile es ursprünglich aufgerufen worden ist, damit es den Text an die richtige Stelle kopiert? Das kann ja der Makrorecorder naturgemäß nicht mitbekommen.
Was der Makrorecorder aufzeichnet, ist noch frustrierender als ich erwartet habe:
[code]
REM ***** BASIC *****
sub NeueZeile
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 ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:InsertRows", "", 0, Array())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
end sub
[/code]
Er zeichnet offenbar überhaupt keine Mausaktionen auf - Das Makro markiert daher nichts, kopiert nichts, pastet nichts .... pfff
Das einzige, was das aufgezeichnete Makro macht, wenn man es aufruft: es fügt eine neue leere Zeile an der Cursorposition ein, Die Befehle für das Copy und das Paste stehen zwar im Makrotext, aber ohne sinnvolle Parameter, und daher tun sie natürlich auch nichts sinnvolles.
Es müsste die aktuelle Zeile erkennen und sich merken, dann die Zeile 3 markieren und in die Zwischenablage kopieren, dann wieder zur gemerkten Zeile zurückgehen, eine leere Zeile einfügen und dort die vorher in die Zwischenablage kopierten Zellen eintragen. Anhand dieses über den Makrorecorder aufgezeichneten Makros komme ich überhaupt nicht weiter.
Ich weiß gar nicht, ob und wie ich eine Zeile ohne Maus per Tastatur markieren kann, aber selbst wenn ich das hinbringen würde (das wird wohl irgendwo in der Dokumentation zu finden sein) und so den Makrorecorder davon überzeugen könnte, dass die Zeile 3 zu markieren ist - wie erfährt das Makro, in welcher Zeile es ursprünglich aufgerufen worden ist, damit es den Text an die richtige Stelle kopiert? Das kann ja der Makrorecorder naturgemäß nicht mitbekommen.