Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

LO Writer Makro zum Kopieren einer Seite?

5 views
Skip to first unread message

Marc Haber

unread,
Feb 15, 2020, 5:41:38 AM2/15/20
to
Hallo,

ich habe hier ein Dokument, das im Wesentlichen aus jeweils
einseitigen "Formularen" besteht, die innerhalb des Dokuments bei
Bedarf vervielfältigt werden. Das wäre viel einfacher und weniger
fehlerträchtig, wenn es ein einfach aufrufbares Makro gäbe, das die
aktuelle Seite vor der aktuellen Seite vervielfältigt und den Cursor
dann an den Anfang der Kopie stellt.

Ich habe nie ein Makro für Libreoffice erstellt; wie müsste so ein
Makro denn aussehen?

Grüße
Marc
--
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber | " Questions are the | Mailadresse im Header
Mannheim, Germany | Beginning of Wisdom " |
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834

nospa...@efbe.prima.de

unread,
Feb 15, 2020, 12:49:27 PM2/15/20
to
Am 15.02.20 um 11:41 schrieb Marc Haber:
> Hallo,
>
> ich habe hier ein Dokument, das im Wesentlichen aus jeweils
> einseitigen "Formularen" besteht, die innerhalb des Dokuments bei
> Bedarf vervielfältigt werden. Das wäre viel einfacher und weniger
> fehlerträchtig, wenn es ein einfach aufrufbares Makro gäbe, das die
> aktuelle Seite vor der aktuellen Seite vervielfältigt und den Cursor
> dann an den Anfang der Kopie stellt.
>
> Ich habe nie ein Makro für Libreoffice erstellt; wie müsste so ein
> Makro denn aussehen?

Es gibt die Funktion Extras Makros Makro aufzeichnen (muss evtl erst
aktiviert werden unter Extras Optionen erweitert).

Speichern, dann eine Taste(nkombination) zum Aufruf zuweisen.
MfG
Frank

Marc Haber

unread,
Feb 15, 2020, 3:32:17 PM2/15/20
to
nospa...@efbe.prima.de wrote:
>Am 15.02.20 um 11:41 schrieb Marc Haber:
>> Hallo,
>>
>> ich habe hier ein Dokument, das im Wesentlichen aus jeweils
>> einseitigen "Formularen" besteht, die innerhalb des Dokuments bei
>> Bedarf vervielfältigt werden. Das wäre viel einfacher und weniger
>> fehlerträchtig, wenn es ein einfach aufrufbares Makro gäbe, das die
>> aktuelle Seite vor der aktuellen Seite vervielfältigt und den Cursor
>> dann an den Anfang der Kopie stellt.
>>
>> Ich habe nie ein Makro für Libreoffice erstellt; wie müsste so ein
>> Makro denn aussehen?
>
>Es gibt die Funktion Extras Makros Makro aufzeichnen (muss evtl erst
>aktiviert werden unter Extras Optionen erweitert).

Das scheint mir aber doch komplexer als man mit dem Aufzeichnen von
Tastendrücken kommt, immerhin müsste man ja nach dem zurückliegenden
Seitenwechsel suchen und dann mit gedrückter Shifttaste nach dem
vorausliegenden.

nospa...@efbe.prima.de

unread,
Feb 16, 2020, 5:12:11 AM2/16/20
to
Am 15.02.20 um 21:32 schrieb Marc Haber:
> nospa...@efbe.prima.de wrote:
>> Am 15.02.20 um 11:41 schrieb Marc Haber:
>>> Hallo,
>>>
>>> ich habe hier ein Dokument, das im Wesentlichen aus jeweils
>>> einseitigen "Formularen" besteht, die innerhalb des Dokuments bei
>>> Bedarf vervielfältigt werden. Das wäre viel einfacher und weniger
>>> fehlerträchtig, wenn es ein einfach aufrufbares Makro gäbe, das die
>>> aktuelle Seite vor der aktuellen Seite vervielfältigt und den Cursor
>>> dann an den Anfang der Kopie stellt.
>>>
>>> Ich habe nie ein Makro für Libreoffice erstellt; wie müsste so ein
>>> Makro denn aussehen?
>>
>> Es gibt die Funktion Extras Makros Makro aufzeichnen (muss evtl erst
>> aktiviert werden unter Extras Optionen erweitert).
>
> Das scheint mir aber doch komplexer als man mit dem Aufzeichnen von
> Tastendrücken kommt, immerhin müsste man ja nach dem zurückliegenden
> Seitenwechsel suchen und dann mit gedrückter Shifttaste nach dem
> vorausliegenden.

Vielleicht die Formulare als Vorlage oder Dokument speichern und als
Datei einfügen, oder auch autotext? Eine Funktion für ganze Seite
selektieren habe ich noch nicht gefunden.
MfG
frank

Marc Haber

unread,
Feb 16, 2020, 5:58:16 AM2/16/20
to
Autotext ist eine gute Idee, kann man da auch formatierte Texte
hinterlegen?

nospa...@efbe.prima.de

unread,
Feb 16, 2020, 1:22:44 PM2/16/20
to
Am 16.02.20 um 11:58 schrieb Marc Haber:
> nospa...@efbe.prima.de wrote:
>> Am 15.02.20 um 21:32 schrieb Marc Haber:
>>> nospa...@efbe.prima.de wrote:
>>>> Am 15.02.20 um 11:41 schrieb Marc Haber:
>>>>> Hallo,
>>>>>
>>>>> ich habe hier ein Dokument, das im Wesentlichen aus jeweils
>>>>> einseitigen "Formularen" besteht, die innerhalb des Dokuments bei
>>>>> Bedarf vervielfältigt werden. Das wäre viel einfacher und weniger
>>>>> fehlerträchtig, wenn es ein einfach aufrufbares Makro gäbe, das die
>>>>> aktuelle Seite vor der aktuellen Seite vervielfältigt und den Cursor
>>>>> dann an den Anfang der Kopie stellt.
>>>>>
>>>>> Ich habe nie ein Makro für Libreoffice erstellt; wie müsste so ein
>>>>> Makro denn aussehen?
>>>>
>>>> Es gibt die Funktion Extras Makros Makro aufzeichnen (muss evtl erst
>>>> aktiviert werden unter Extras Optionen erweitert).
>>>
>>> Das scheint mir aber doch komplexer als man mit dem Aufzeichnen von
>>> Tastendrücken kommt, immerhin müsste man ja nach dem zurückliegenden
>>> Seitenwechsel suchen und dann mit gedrückter Shifttaste nach dem
>>> vorausliegenden.
>>
>> Vielleicht die Formulare als Vorlage oder Dokument speichern und als
>> Datei einfügen, oder auch autotext? Eine Funktion für ganze Seite
>> selektieren habe ich noch nicht gefunden.
>
> Autotext ist eine gute Idee, kann man da auch formatierte Texte
> hinterlegen?

Habe ich noch nicht verwendet, aber das Macro läuft:

REM ***** BASIC *****
rem getestet mit LO 6.0.7.3 Ubuntu 18.04.4 LTS
rem angepasste Makroaufzeichnung 2020-02-16 fb
rem hilfreiche doku von
https://wiki.documentfoundation.org/Development/DispatchCommands
Sub Main

End Sub

sub dupl
rem -----aktuelle Seite duplizieren
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 ----------------------------- ganze aktuelle Seite selektieren
dispatcher.executeDispatch(document, ".uno:GoToStartOfPage", "", 0, Array())
dispatcher.executeDispatch(document, ".uno:GoToEndOfPageSel", "", 0,
Array())

rem ----------------------------------- und kopieren
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())

rem ----------------------------------------------------------------------
dim args5(1) as new com.sun.star.beans.PropertyValue
args5(0).Name = "Count"
args5(0).Value = 1
args5(1).Name = "Select"
args5(1).Value = false

rem -------- Selektion aufheben keine bessere Idee / Funktion gefunden
dispatcher.executeDispatch(document, ".uno:GoDown", "", 0, args5())
dispatcher.executeDispatch(document, ".uno:GoUp", "", 0, args5())

rem -------- neue seite
dispatcher.executeDispatch(document, ".uno:InsertPagebreak", "", 0, Array())

rem --------- mit Text füllen
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())

rem ------ auf Seitenanfang vorige Seite
dispatcher.executeDispatch(document, ".uno:GoToStartOfPrevPage", "", 0,
Array())
end sub

MfG
Frank

Marc Haber

unread,
Feb 20, 2020, 8:10:54 AM2/20/20
to
nospa...@efbe.prima.de wrote:
>Habe ich noch nicht verwendet, aber das Macro läuft:

Funktioniert super, vielen Dank!
0 new messages