Makro systemweit bleibend speichern

Ich möchte ein Makro aufzeichnen und in allen Dokumenten bzw. allen Office-Programmen verwenden können.
Dazu möchte ich in einer Symbolleiste ein individuelles Symbol mit diesem Makro verknüpfen.

Wo (bzw. wie) muss ich ein solches aufgezeichnetes Makro speichern, sodass es nicht nur im bei der Aufzeichnung offenen Dokument nachhaltig funktioniert?

Vielen Dank für Eure Hilfe schon mal vorab. (Das konnte ich schon mal, bringe es aber nicht mehr auf die Reihe. Sch’werde alt.)

Es gibt 3 1/2 Speicherorte für Makros:

  1. “LibreOffice Makros” werden mit LibreOffice ausgeliefert werden und liegen im Installationsverzeichnis. Hat der Rechner mehrere Nutzerkonten, haben alle Nutzer Zugriff auf diese Makros.
  2. Speichern unter “Meine Makros” ist das, was Du willst und wird in Deinem Profilverzeichnis abgelegt. Wenn Du Dich einloggst und LibreOffice startest, stehen diese Makros zur Verfügung.
  3. In jedem Dokument können Makros gespeichert werden. Dies ist zu empfehlen wenn Makros auf ganz spezifische Teile des Dokuments zugreifen, etwa auf benannte Bereiche, ganz bestimmte Tabellenblätter, Textabschnitte.
    3a) Jede Vorlage kann mit Makros abgespeichert werden, so dass gleichartige Dokumente von derselben Vorlage immer gleich mit beiliegenden Makros erzeugt werden.

Was soll das für ein aufgezeichnetes Makro sein, das sowohl für Text wie auch für Tabellenkalkulation, Präsentation etc. irgendeinen Sinn ergibt? Aufzeichnen kann man eh nur für Text und Tabellenkalkulation, und die aufgezeichneten Befehle sind dann auch nur auf die jeweiligen Dokumenttypen anwendbar.
Bei LibeOffice handelt es sich übrigens nicht um eine Sammlung von Programmen. Es ist technisch gesehen ein einziges Programm, das verschiedenartige Dokumente öffnen kann.

Vielen Dank für deine Hilfe!
Das Speichern unter “Meine Makros” (MM) gelingt mir hier seltsamerweise nicht. (Ich weiß nicht, was ich inadäquat mache, auch eine neue Bibliothek habe ich versucht.)
Ich zeichne auf und benenne das Makro (M), danach speichere ich es unter MM.

Das funktioniert solange, solange LO läuft. Nach Neustart erhalte ich folgende Meldung:
(Leider kann ich nur einen Screenshot einfügen.)

Beim Prüfen des Vorgangs kann ich das M, solange LO läuft, auch mit dem Befehl “Makros Bearbeiten…” einsehen. Nicht jedoch mit “Makros verwalten”.
(Leider kann ich nur einen Screenshot einfügen.)

Ich bitte um Verständnis, dass ich ggf. nicht alles richtig benenne.
Im Speziellen geht es mir nur um das mehrmalige Ausführen von STRG+POS1 bzw. STRG+ENDE. Ich vermeide damit das Umgreifen von der Maus auf die Tastatur.

Ich öffne ein Textdokument starte den Recorder, drücke Stg+Pos1, beende den Recorder, der Dialog poppt auf, ich gebe einen gültigen Makronamen ein (z.B. “recorded_Strg_Pos1_Writer”) und wähle ein Modul in einer Bibliothek aus, z.B. Standard > Module1. In diesem ausgewählten Modul wird dann folgende Routine gespeichert:

Sub recorded_Strg_Pos1_Writer
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:GoToStartOfDoc", "", 0, Array())
End Sub

Gültige Makronamen bestehen nur aus Buchstaben, Ziffern und Unterstrich.

Der obige Code funktioniert mit Writer. Für Calc müsstest Du das nochmal Wiederholen.

Ebenso (nach deinem Post nochmal!) mache ich es hier. Nach dem Neustart des PC ist das selbst aufgenommene M. weg, im Ggs. zum Neustart nur von LO, wo das M. noch angezeigt wird und funktioniert.

Anders formuliert, nach Neustart des PC gibt es bei mir in “Meine Makros” unter “Standard” in “Module1” nur noch das “Main”, mein ‘gespeichertes Makro’ ist weg.
Als Name habe ich lediglich den String “down” oder ww. “up” verwendet.

Öffne das Modul zum Bearbeiten und kopiere meinen Codeblock da rein.

Jetzt wird es kurios:
Auf diese Weise geht das Speichern und bleibt erhalten.
Hier müsste m. E. ein Fehler im Befehl “Speichern” des Dialoges “BASIC-Makros” des Menübefehls “Extras | Makros | Makro aufzeichnen” zugrunde liegen.

Die “Lösung” meiner Frage ist also:
Aufzeichnen und ‘Speichern’
Mit Editor “Makros bearbeiten” aufrufen, eine unbedeutende Änderung vornehmen und danach explizit “Speichern”.
Umständlich, aber funktioniert hier.
Danke für deine Hilfe!

Mit welcher Version von LibreOffice unter welchem Betriebssystem arbeitest Du? Nur so lännst sich das Verhalten eventuell nachvollziehen und ein Bug aufgeben.

menu:Hilfe>Über Libreoffice… Kopierknopf clicken und hier einfügen.
Mit der folgenden Konfiguration kann ich das Verhalten nicht nachvollziehen. Basic Makros werden eigentlich automatisch beim Schließen des Programms gespeichert. Möglicherweise wird dein LibreOffice nicht korrekt beendet?

Version: 7.5.5.2 (X86_64) / LibreOffice Community
Build ID: ca8fe7424262805f223b9a2334bc7181abbcbf5e
CPU threads: 4; OS: Linux 5.15; UI render: default; VCL: x11
Locale: de-DE (de_DE.UTF-8); UI: en-US
Calc: threaded

Sorry - hatte die Versionsangebaben vergessen einzugeben:
Version: 7.5.4.2 (X86_64) / LibreOffice Community
Build ID: 36ccfdc35048b057fd9854c757a8b67ec53977b6
CPU threads: 4; OS: Windows 10.0 Build 19045; UI render: Skia/Raster; VCL: win
Locale: de-AT (de_AT); UI: de-DE
Calc: CL threaded

LO startet und endet ohne weitere Aufflälligkeiten.

Kenne mich mit Windows nicht so aus, aber starte mal ein Terminal (Win+R, Eingabe: cmd) und starte LO von dort. Das müsste sein: "C:\Program Files\LibreOffice\program\soffice.bin"
Und dann zeichne ein Makro auf, beende das Programm und schau, ob das Programm auf dem Terminal irgendwelche “letzten Worte” von sich gibt.

Bei Win. ist das dann eine *.exe, hier als C:\Program Files\LibreOffice\program\soffice.exe.
Keine ‘letzten Worte’, auch wenn es aus der Console gestartet wird.

Ich bin jetzt bis nächste W. raus, bin auf Urlaub…
Viel Erfolg. (s. o - meine letzten Worte. :wink: :wave:)
(Für mich ist ohnehin mein Prob. gelöst, das Speichern hat ja funktioniert. s.o.)

Imho: nein
.
Die .exe ist die GUI-Anwendung, die keine Fehlermeldungen an die Konsole gibt, während die im selben Verzeichnis befindliche soffice.com eine Konsolenanwendung ist.

Beim Starten aus der Console / Terminal ist das Ergebnis unterschiedlich, jedoch in beiden Fällen keine weiteren (Fehler-) Meldungen.

Starte ich unter cmd soffice.exe, wird das Makro NICHT bleibend gespeichert.
Starte ich unter cmd soffice.com, wird das Makro BLEIBEND gespeichert.
(Für mich ist ohnehin mein Prob. gelöst, das Speichern hat ja funktioniert. s.o.)

Wäre es reproduzierbar, könnte man einen validen Bug-Report beisteuern und das Problem könnte bald gefixt werden. Ich habe es grade auf einem Windows-PC nachgestellt und kann das Fehlverhalten nicht reproduzieren.

Version: 7.5.5.2 (X86_64) / LibreOffice Community
Build ID: ca8fe7424262805f223b9a2334bc7181abbcbf5e
CPU threads: 4; OS: Windows 10.0 Build 17763; UI render: Skia/Raster; VCL: win
Locale: de-DE (de_DE); UI: de-DE
Calc: threaded

vielleicht hat jemand dasselbe W. am laufen?