BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Dokument etwa wie Datenbank(-formulare) mit Startmakro öffnen

Alles zur Programmierung im LibreOffice.
Antworten
herz4
Beiträge: 52
Registriert: Sa 17. Dez 2016, 16:11

Dokument etwa wie Datenbank(-formulare) mit Startmakro öffnen

Beitrag von herz4 » Mi 23. Feb 2022, 12:36

Die LibreOffice-CL ermöglicht es, beim Öffnen eines Dokuments ein Makro ausführen zu lassen. Allerdings darf dieses Makro nicht im Dokument selbst eingebettet sein, sondern muss "zentral" zugänglich sein, etwa unter "Meine Makros". Die dort liegenden Makros können nun wieder nicht - unmittelbar - Makros steuern, die im Dokument liegen. Dieser Spagat gelingt mir mit einem (zentralen) Startmakro, dass eine - globale - Variable, etwa "STARTMAKRO_AN" auf true setzt, die das (für mich notwendige) Makro, dass im Dokument bei dessen Öffnung ausgeführt wird, abfragt, und entsprechend dem "Schalter" ausführt oder auch nicht. Gleich nach dieser Abfrage muss im (lokalen) Makro die globale Variable wieder auf false gesetzt werden. In der CL wird bei mir dann auch erst das zentrale Makro und dann das Dokument aufgerufen. - Funzt problemlos.

Aber, gibt es für das beschriebene Prozedere, das es mir ermöglicht, Dokumente z. B. nach Absturz oder auch bei (Weiter-)Entwicklung ohne Startmakro aufzurufen, eine "elegantere" Lösung? (Eleganter ist es im täglichen Gebrauch für mich nicht, immer die Kontrollfrage, soll Makro gestartet werden, mit OK zu bestätigen. Der Umgehung dessen dient ja gerade mein "zentraler Schalter".)
:? 2024-02-26 Linux Mint 20.1 64bit Ulyssa base: Ubuntu 20.04 focal, Cinnamon 4.8.6, Linux-Kernel 5.15.0-97-generic, LO Version: 6.4.7.2 Build-ID: 1:6.4.7-0ubuntu0.20.04.9, HSQL Database Engine 2.5.0 extern mit org.hsqldb.jdbcDriver

F3K Total
Beiträge: 2410
Registriert: So 10. Apr 2011, 10:10

Re: Dokument etwa wie Datenbank(-formulare) mit Startmakro öffnen

Beitrag von F3K Total » Do 24. Feb 2022, 17:29

Moin,
dass einzige, was mir zu dem Thema, insofern ich es überhaupt anhand deines Textes richtig verstanden habe, einfällt ist, dass man beim LoadComponentFromUrl auch ARGS() mit übergeben kann, mit denen man den MacroExecutionMode an bzw. ausschalten kann, sprich dem Dokument, was geladen werden soll, Makros auszuführen erlaubt, oder eben nicht.
Das gilt dann für alle Makros im Dokument.

Bsp.:

Code: Alles auswählen

    dim args1(0) as new com.sun.star.beans.PropertyValue
    args1(0).Name = "MacroExecutionMode"
    args1(0).Value = 4 'alle Makros erlauben
    sUrl = ConvertToURL("C:\Users\<USER>\Rechnungsvorlage.odt")
    oDoc = StarDeskTop.loadComponentFromUrl(sURL,"_blank",0,args1())
Mögliche Values siehe hier
Gruß R
Windows 10: AOO, LO Linux Mint: AOO, LO

herz4
Beiträge: 52
Registriert: Sa 17. Dez 2016, 16:11

Re: Dokument etwa wie Datenbank(-formulare) mit Startmakro öffnen

Beitrag von herz4 » Fr 25. Feb 2022, 11:57

Danke R.,
ich bin unsicher, Deine Anregung richtig verstanden zu haben:
Dokument mit "Makros verboten auszuführen" speichern, dann via diesem Startmakro aufrufen, wobei die url auch per Parameter übergeben werden könnte, dann werden die gewünschten Makros - temporär - trotzdem ausgeführt; danach bleibt in dem Dokument die Option "Makros verboten auszuführen" bestehen(!), wenn es geschlossen oder auch verändert gespeichert wird, weshalb beim einfachen Öffnen weiterhin keine Makros ausgeführt werden?! Richtig? - Zumindest scheinst Du mir, mich richtig verstanden zu haben :P
... dann werde ich es mir mal bei nächster Gelegenheit "reinziehn", probieren. Gefällt mir so, wie ich(!) es verstanden habe, besser als meine bisherige Lösung: Nur noch ein "System"makro zum Öffnen der (interessanten) Dateien.
Mit herz4lichem Gruß!
:? 2024-02-26 Linux Mint 20.1 64bit Ulyssa base: Ubuntu 20.04 focal, Cinnamon 4.8.6, Linux-Kernel 5.15.0-97-generic, LO Version: 6.4.7.2 Build-ID: 1:6.4.7-0ubuntu0.20.04.9, HSQL Database Engine 2.5.0 extern mit org.hsqldb.jdbcDriver

F3K Total
Beiträge: 2410
Registriert: So 10. Apr 2011, 10:10

Re: Dokument etwa wie Datenbank(-formulare) mit Startmakro öffnen

Beitrag von F3K Total » Fr 25. Feb 2022, 18:04

Moin,
wenn ich richtig informiert bin, kannst du NICHT "Dokument mit "Makros verboten auszuführen" speichern sondern nur die Makro-Sicherheitseinstellungen auf "hoch" oder "sehr hoch" setzen.
Öffnest du eine Datei per Doppelklick kommt die Info das die Datei Makros enthält, diese aber wegen der Sicherheitseinstellungen nicht ausgeführt werden.
Wenn du die Datei allerdings bei Einstellung "hoch" oder "sehr hoch" mit dem angegebenen lokalen Makro öffnest, funktionieren die Makros in der Datei.
Lädst du die Datei mit dem Makro und nimmst statt der 4 eine 0, wird die Datei ohne Meldung geöffnet, Makros in der Datei laufen dann nicht.

Gruß R
Windows 10: AOO, LO Linux Mint: AOO, LO

An alle, die das LibreOffice-Forum nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten