Seite 1 von 1

Wie mit Schaltfläche Makro einer anderen Datei starten?

Verfasst: Fr, 22.01.2010 19:24
von steffn
Die Suche hier und über Google haben mir nicht geholfen:
Wie kann man duch Auslösen einer Schaltfläche ein Makro einer anderen Datei starten?

Re: Wie mit Schaltfläche Makro einer anderen Datei starten?

Verfasst: Sa, 23.01.2010 06:52
von komma4
Schaltfläche: wo (Symbolleiste, Dialog, Formular)?

Makro der "anderen Datei": diese Datei geöffnet?

Prinzipiell: warum?
Allgemeingültige Makros sollten nicht in "fremden" Dateien versteckt werden... dort sollten sich nur dokumentenspezifische Makros "verstecken"


Welche OOo Version?

Re: Wie mit Schaltfläche Makro einer anderen Datei starten?

Verfasst: Sa, 23.01.2010 10:40
von steffn
Schaltfläche im Formular.

Geöffnete andere Datei.

Ich weiß nicht, was allgemeingültige Makros sind und unterscheide Makros wahrscheinlich damit verbunden auch nicht. Ich habe alle dokumentspezifischen und dukumentübergreifenden Makros in einer Hauptdatei, die auch die anderen Dateien startet. Und aus einer der anderen Dateien möchte ich nun sehr gerne ein Makro der Hauptdatei starten.

OOO310m19 (Build:9420)

Re: Wie mit Schaltfläche Makro einer anderen Datei starten?

Verfasst: Sa, 23.01.2010 11:36
von Stephan
Ich weiß nicht, was allgemeingültige Makros sind und unterscheide Makros wahrscheinlich damit verbunden auch nicht.
Damit meint Winfried die Summe von Benutzer- und OOo-Makros.
Benutzermakros sind diejenigen Makros die im Benutzermakroverzeichnis gespeichert sind und im Dialog Extras-Makros-Makros verwalten-OPenOffice.org Basic im erscheinenden Dialog im Feld "Makros aus" unter "Meine Makros" stehen, OOo-Makros hingegen sind im 'zentralen' Makroverzeichnis gespeichert und im schon genannten Dialog unter "OpenOffice.org makros" aufgelistet.
Ich habe alle dokumentspezifischen und dukumentübergreifenden Makros in einer Hauptdatei, die auch die anderen Dateien startet.


Falls der Sinn des ganzen ist eine leichte Weitergabe der Makros in Anlehnung an das bei MS Office Übliche zu eerreichen beschreitest du einen sehr ungünstigen Weg, weil das bei OOo so nicht vorgesehen ist.
Makros die dokumentübergreifend arbeiten werden bei OOo (heutzutage) bevorzugt in Form sog. Extensions weitergegeben.

ZU der eigentlichen fRage weiß ich auch keine Lösung. Ich nehme aber an das es eine gibt, weil ich glaube mich zu erinnern sowas schon eimal gesehen zu haben.
Entweder dürfte es sich dabei um eine LÖsung handeln die sich an das Starten von zentralen Makros per Kommandozeile anlehnt, siehe:
viewtopic.php?f=2&t=31173&hilit=Kommandozeile#p124587

allerdings führen im internationalen Forum genannte Ausdrücke:

Code: Alles auswählen

soffice "C:\Dokumente und Einstellungen\Administrator\Desktop\mtest.ods macro://Standard.Module1.makrotest()"
(oder: ... macro:///...)

bei mir nicht zum Erfolg.
WEnn sich eine funktionierende Formulierung finden ließe wäre die Ausführung prinzipiell über eine temporäre Batsch-Datei oder über den Shell-Befehl möglich.

Oder die LÖsung, die ich glaube schon mal gesehen zu haben, ging über ein -accept (siehe obiger Link im Screenshot)



Gruß
Stephan

Re: Wie mit Schaltfläche Makro einer anderen Datei starten?

Verfasst: Mo, 25.01.2010 13:36
von steffn
Stephan hat geschrieben:
Ich weiß nicht, was allgemeingültige Makros sind und unterscheide Makros wahrscheinlich damit verbunden auch nicht.
Damit meint Winfried die Summe von Benutzer- und OOo-Makros.
Benutzermakros sind diejenigen Makros die im Benutzermakroverzeichnis gespeichert sind und im Dialog Extras-Makros-Makros verwalten-OPenOffice.org Basic im erscheinenden Dialog im Feld "Makros aus" unter "Meine Makros" stehen, OOo-Makros hingegen sind im 'zentralen' Makroverzeichnis gespeichert und im schon genannten Dialog unter "OpenOffice.org makros" aufgelistet.

Okay danke ... aber was bedeutet das für mich?
Soll ich die Makros einfach am anderen Ort speichern, dann wird mein Problem kein Problem mehr?
Stephan hat geschrieben:
Ich habe alle dokumentspezifischen und dukumentübergreifenden Makros in einer Hauptdatei, die auch die anderen Dateien startet.

Falls der Sinn des ganzen ist eine leichte Weitergabe der Makros in Anlehnung an das bei MS Office Übliche zu erreichen beschreitest du einen sehr ungünstigen Weg, weil das bei OOo so nicht vorgesehen ist.
Makros die dokumentübergreifend arbeiten werden bei OOo (heutzutage) bevorzugt in Form sog. Extensions weitergegeben.
Ich kenne das "MS Office Übliche" nicht und ich habe auch noch nie eine Extension erstellt.
Was ist mit "Weitergabe"/"weitergegeben" gemeint?
Wenn ich die Makros in einer Extension speichere, verschwindet dann mein Problem?

Spontan fällt mir nur ein "thiscomponent" ein, dass die Makros zur Zeit an die Hauptdatei bindet. Ansonsten ist eigentlich alles so neutral, dass es egal ist, wo der Code sich befindet.

Re: Wie mit Schaltfläche Makro einer anderen Datei starten?

Verfasst: Mo, 25.01.2010 13:50
von komma4
Ja, so siehst aus.

Erstelle eine Bibliothek "foo" und packe Deine Makros da rein.
Exportiere die Bibliothek als Extension (Basic-Makros verwalten>Bibliotheken>Export...)

Nun sorgst Du vor einer Makroausführung noch, dass diese Bibliothek geladen ist

Code: Alles auswählen

If NOT Globalscope.BasicLibraries.isLibraryLoaded( "foo" ) Then
   Globalscope.BasicLibraries.loadLibrary( "foo" )
End If
...und schon kann jedes Makro darin aufgerufen werden (durch seinen Namen)