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".)
🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱
🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Dokument etwa wie Datenbank(-formulare) mit Startmakro öffnen
Dokument etwa wie Datenbank(-formulare) mit Startmakro öffnen

Re: Dokument etwa wie Datenbank(-formulare) mit Startmakro öffnen
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.:
Mögliche Values siehe hier
Gruß R
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())
Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Dokument etwa wie Datenbank(-formulare) mit Startmakro öffnen
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
... 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ß!
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

... 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ß!

Re: Dokument etwa wie Datenbank(-formulare) mit Startmakro öffnen
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
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 11: AOO, LO Linux Mint: AOO, LO
An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:
Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.