Seite 1 von 1

Auto-Makros

Verfasst: Di 26. Nov 2019, 18:42
von Weissnochnix
Gibt es in LibreOffice Auto-Makros wie in MS und wenn ja wie heißen sie.

AutoNew
AutoClose

Gefunden habe ich jedenfalls keine.

LG

Re: Auto-Makros

Verfasst: Mi 27. Nov 2019, 00:46
von gogo
Makros laufen in LO immer automatisch wenn sie gestartet wurden. Man muss sie nie noch extra animieren - ist das denn bei MS-Office so?

Re: Auto-Makros

Verfasst: Mi 27. Nov 2019, 13:52
von Weissnochnix
AutoNew,
AutoClose,
machen bei MS folgendes.
Rufe ich u.a. eine (Brief)Vorlage auf. Wenn AutoNew in der Vorlage vorhanden ist wird diese Prozedur bei öffen ausgeführt.
Beim Schleißen des Briefes dann AutoClose, wenn vorhanden.
Ich benutze AutoNew (bei MS) um, wenn ich ein Brief schreiben möchte ein Verz. mit Jahr und Monat zu erstellen, sofern es nicht vorhanden ist. ("c:\Private Briefe\2019\12\). Damit sortiert ich meine Briefe und muss nicht suchen.
Statt AutoNew könnte man das auch einem Schalter auf das Makro setzen, nur ich bin faul^^.
Daher würde es mich schon freuen so einen Befehl zu haben. Bin nämlich auf LO umgestiegen und passe gerade meine MS Vorlagen an LO an.
Sub AutoNew
call Meine Proc
end sub
Ich hoffe das war jetzt ausführlich genug, um zu verstehen, warum ich die Befehle haben möchte, wenn sie in LO den vorhanden sind.
LG

Re: Auto-Makros

Verfasst: Mi 27. Nov 2019, 17:11
von F3K Total
Moin,
es gibt verschiedenste "auslösende Eregnisse"
  • auf Applikations und Dokumentenebene, Menü Extras/Anpassen/Reiter Ereignisse:
    APP.png
    APP.png (48.08 KiB) 4559 mal betrachtet
  • auf Tabellen: Tabellenereignisse
    Tab.png
    Tab.png (42.57 KiB) 4559 mal betrachtet
  • auf Elementebene, Eigenschaften/Reiter Ereignisse
    Element.PNG
    Element.PNG (31.89 KiB) 4559 mal betrachtet
Statt AutoNew kannst du dein Makro an neues Dokument hängen.
Gruß R

Re: Auto-Makros

Verfasst: Mi 27. Nov 2019, 17:43
von Weissnochnix
Danke, sowas hatte ich gesucht.
LG

Re: Auto-Makros

Verfasst: Do 28. Nov 2019, 00:16
von gogo
Dachte ich mir eh ;)

Achte beim Erstellen des Makros darauf, dass es dem Ereignis "Neues Dokument" zugeordnet wird, dann sollte es nur beim Erstellen des Dokumentes aus der Vorlage ausgeführt werden.
Das Makro wird dann aber auch in jedem der Dokumente vorhanden sein, könnte also zu lästigen Nachfragen bei jedem Öffnen führen, und bei E-Mail Scannern Panik auslösen - abgesehen davon sollte man Code nicht überall lose rumliegen haben.
Am besten ist es wenn der Code gar nicht in der Vorlage gespeichert ist, sondern wenn Du ein loses Makro schreibst, das auf Basis einer Vorlage ein neues Dokument erstellt und dieses dann mal abspeichert.
Also: https://www.dannenhoefer.de/faqstarbasi ... ffnen.html
und dann:
https://www.dannenhoefer.de/faqstarbasi ... chern.html

Also:

Code: Alles auswählen

Sub NeueDateiAusVorlage_SpeichernUnterDefiniertemPfad

	DIM DummyFileProp() as new com.sun.star.beans.PropertyValue
	VorlagenURL=converttourl("/Pfad/zur/Vorlage/VorlagenTest.ott")
	SpeicherURL=converttourl("/Pfad/wo/das/neue/Dok/hin/soll/Test_" & format(now,"YYYY-MM-DD") & ".odt")

	oDocument = StarDesktop.loadComponentFromURL(VorlagenURL, "_blank", 0, DummyFileProp() )
	oDocument.storeAsUrl(SpeicherURL, DummyFileProp())

end sub
Man kann in der neuen Datei eine Makro-Zuordnung zu einem Ereignis per Makro aufheben. Und man kann die Bibliothek auch zur Laufzeit verändern (d.h. den Makrocode aus dem Dokument löschen) - letzteres ist aber wirklich als experimentell anzusehen - einfacher ist die Lösung oben. Das Makro dann an ein Icon in der Iconliste binden und fertig...

edit: Code verschönert

Re: Auto-Makros

Verfasst: Do 28. Nov 2019, 17:27
von F3K Total
gogo hat geschrieben:
Do 28. Nov 2019, 00:16
Das Makro wird dann aber auch in jedem der Dokumente vorhanden sein, könnte also zu lästigen Nachfragen bei jedem Öffnen führen
Sorry, da muss ich widersprechen. Wenn ein Makro, das unter "Meine Makros" liegt, auf Applikationeebene (Leerer OpenOffice Bilschirm)
EAE.png
EAE.png (6.33 KiB) 4499 mal betrachtet
über Menü Extras/Anpassen/Reiter Ereignisse an das Ereignis "Neues Dokument" gehängt wird, wird es auch nur beim Erzeugen eines neuen Dokumentes ausgeführt, hat nichts mit dem neuen Dokument zu tun.
Allerdings wird es dann bei jedem neuen Dokument, ob Calc, Writer, Base ... ausgeführt
Will man es auf einen bestimmten Dokumententyp eingrenzen, kann man dies z.B. innerhalb des Makros, durch Abfrage des Dokumententyps erledigen, Beispiel:

Code: Alles auswählen

SUB NEUES_CALC_DOCUMENT(EVENT)
    IF EVENT.SOURCE.supportsservice("com.sun.star.sheet.SpreadsheetDocument") then
        msgbox "ich bin ein neues Calc-Dokument"
    ENDIF
END SUB
Gruß R

Re: Auto-Makros

Verfasst: Fr 29. Nov 2019, 00:14
von gogo
Ich hab' dem "Startbildschirm" noch nie ein Makro zugeordnet. Wusste gar nicht, dass so etwas vorgesehen ist :lol:

Re: Auto-Makros

Verfasst: Fr 29. Nov 2019, 05:10
von Weissnochnix
@ gogo Und schon wieder hat es was gelernt. :lol: