[gelöst]Makro automatisch ausführen, aber wie?

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: [gelöst]Makro automatisch ausführen, aber wie?

Re: Makro automatisch ausführen, aber wie?

von HHTiger » Do, 20.12.2012 20:38

Nabend F3k Total,
Wo der praktische Unterschied, ob ein Makro z.B. dem Ereignis Programmstart im Dokument oder unter OpenOffice zugeordnet ist, liegt, ist dir klar?
Also da fällt mir spontan nur der Start einer Drittanwendung ein, der entweder ständig oder nur für das eine Dokument verfügbar sein soll.

Gruß Klaus

Re: Makro automatisch ausführen, aber wie?

von F3K Total » Do, 20.12.2012 18:40

Moin Tiger,
HHTiger hat geschrieben:Nur wenn der Dialog von der Dokument Seite aus aufgerufen wird, hat man Zugriff auf alle Ereignisse aller (derzeit) verfügbaren Speicherorte (also sowohl Dokumente, als auch Programm!)
Genau! Und darum ist es wichtig von wo aus man den Dialog aufruft, denn aus der Basic IDE und von der Programmebene aus, kann man die in ein Dokument zu speichernden Verknüpfungen nicht wählen. Vielleicht wäre es wünschenswert, könnte aber leicht sehr unübersichtlich werden, gerade wenn man viele Dokumente geöffnet hat.
Wo der praktische Unterschied, ob ein Makro z.B. dem Ereignis Programmstart im Dokument oder unter OpenOffice zugeordnet ist, liegt, ist dir klar?
Gruß R

Re: Makro automatisch ausführen, aber wie?

von HHTiger » Do, 20.12.2012 11:33

Hallo Stephan,
Stephan hat geschrieben:Nein, und hätte Du Deine Vermutung überprüft hättest du das eigentlich merken müssen.
Das ist jetzt etwas unfair, wie hätte ich das denn Deiner Meinung nach überprüfen können? Zu dem Zeitpunkt hatte ich ja noch keinen Weg gefunden, das zu überprüfen!
Das ist richtig, aber es funktioniert trotzdem nicht weil dort ein Programmfehler ist.
Sprichst Du hier von dem von mir beschriebenen Bug's? Heißt das mit anderen Worten, der bzw. die Fehler sind bereits bekannt?

Mittlerweile und dank der Hilfe von "F3K Total" habe ich inzwischen 5 verschiedene Wege gefunden, mit denen man den Dialog "Anpassen" aufrufen kann, von denen jedoch nur ein einziger zu dem gewünschten Ergebnis führt.


Gruß Klaus

Re: Makro automatisch ausführen, aber wie?

von Stephan » Do, 20.12.2012 07:05

Es gibt die Fehlermeldung: "Das Kontingent für Dateianhänge ist bereits vollständig ausgenutzt." Was auch immer das bedeuten mag.
Es bedeutet das der in der Forumssoftware eingestellte maximale Speicherplatz für Dateianhänge aktuell erschöpft war und deshalb ein weiterer Upload nicht möglich ist.
Der eingestellte Wert wurde jetzt gerade von mir erhöht und somit ist nun ein Upload wieder möglich.


Gruß
Stephan

Re: Makro automatisch ausführen, aber wie?

von Stephan » Do, 20.12.2012 07:01

Die Tatsache, daß es aber funktioniert kommt meiner Meinung nach daher, daß Du überall die Standard-Vorgaben benutzt.
Nein, und hätte Du Deine Vermutung überprüft hättest du das eigentlich merken müssen.
Von der Vorgehensweise müßte es eigentlich folgendermaßen funktionieren:
Das ist richtig, aber es funktioniert trotzdem nicht weil dort ein Programmfehler ist. Du mußt den Dialog zum Zuweisen über Extras-Anpassen-Ereignisse aufrufen, nicht über den von Dir beschriebenen Weg, dann wird die ZUweisung funktionieren bzw. möglich sein.
Da z.B. OpenOffice-BASIC über den nahezu identischen Befehlssatz wie VB oder VBA verfügt und sich hauptsächlich in der API von VBA unterscheidet, kann man hier durchaus von einem "Abkömmling" sprich Derivat von VB oder VBA sprechen.
Nein, das kann man nicht, denn dazu müßte es davon abstammen, denn "abstammen" heißt ja nun einmal nicht gleich oder ähnlich sein, sondern abstammen.
z.B. mögen MS Word 2000 und OOo Writer ähnlich aussehen und funktionieren, nur stammt keines vom Anderen ab, hingegen stammt z.B. go-oo von OOo ab.



Gruß
Stephan

Re: Makro automatisch ausführen, aber wie?

von HHTiger » Do, 20.12.2012 02:29

Konnte die zitierten Anhänge leider nicht mitschicken. Es gibt die Fehlermeldung: "Das Kontingent für Dateianhänge ist bereits vollständig ausgenutzt." Was auch immer das bedeuten mag. :(

Egal, die Anhänge sollten sein:

1. Aus_OO_Dokument.png => Screenshot des Dialoges "Anpassen" von der Dokument-Seite aufgerufen mit einem offenen Dokument.
2. HilfeF1.png => Screenshot der Hilfe-Datei, die durch Drücken der F1-Taste bei geöffnetem Dialog "Anpassen" erscheint.

Kann also von jedem selbst nachvollzogen werden.

Re: Makro automatisch ausführen, aber wie?

von HHTiger » Do, 20.12.2012 02:18

Hallo R.,

Deine Erläuterungen waren zu meinem weiteren Verständnis sehr hilfreich.
F3K Total hat geschrieben:Es gibt einen Ort an dem der Makro Code gespeichert wird:
  • Makros/Module/Bibliotheken werden innerhalb eines Dokumentes gespeichert, Vorteil: die Makros sind immer dabei.
  • Makros/Module/Bibliotheken werden in OpenOffice (z.B. im Benutzerverzeichnis) gespeichert, Vorteil: gleiche Aufgaben in unterschiedlichen Dokumenten nutzen das gleiche Makro, Nachteil, ein an ein Dokumentereignis gebundenes Makro fehlt auf einem anderen Rechner.
Dieser Teil ist absolut richtig und das habe ich auch genau so verstanden. Der folgende Satz ist in diesem Zusammenhang allerdings falsch:
F3K Total hat geschrieben:Diesen Ort, und nur den Ort, wählst Du mit der Combobox "Speichern in" aus.
Denn mit der ComboBox "Speichern in" im Dialog "Anpassen" Reiter "Ereignisse" (siehe Anhang: Aus_OO_Dokument.png) wird lediglich der Speicherort der Verknüpfung zwischen Ereigniss und zugewiesenem Makro bestimmt (siehe Anhan: HilfeF1.png). NICHT der Speicherort des Makros selbst!

Bei dem nachfolgenden Absatz wird es etwas schwieriger. Grundsätzlich stimme ich Dir in vielen Dingen zu, allerdings nicht in allen. ich versuche einmal Dir zu verdeutlichen, wo unsere Meinungen auseinander gehen und warum ich trotzdem davon überzeugt bin, dass es sich um Bug's handelt.

Sechs Gründe vorweg, die für die von mir erwähnten Bug's sprechen:
1.) Egal über welchen Weg man den Dialog "Anpassen" aufruft (bisher habe ich 4 Wege gefunden) erscheint IMMER derselbe Dialog!
2.) Er heisst immer gleich, also KEINE Unterscheidung zwischen Programm Anpassen oder Dokument Anpassen.
3.) In der Hilfe gibt es nur eine einzige Beschreibung zu diesem Dialog (siehe Anhang: HilfeF1.png). Auch hier KEINE Unterscheidung, von WO aus der Dialog aufgerufen wurde!
4.) Egal wie oder von wo der Dialog aufgerufen wird, es werden immer ALLE Ereignisse (sowohl für Dokument als auch für Programm) angezeigt. Bitte nicht Ereignisse mit Speicherort verwechseln!!
5.) Die Unterscheidung zwischen Programm oder Dokument (Speicherort der Verknüpfung) findet über die ComboBox "Speichern in" statt. Und ausschliesslich hierüber!
6.) Nur wenn der Dialog von der Dokument Seite aus aufgerufen wird, hat man Zugriff auf alle Ereignisse aller (derzeit) verfügbaren Speicherorte (also sowohl Dokumente, als auch Programm!) Ausgenommen natürlich die auch später von Dir erwähnten "Elementereignisse".

Zum besseren Verständnis habe ich die folgenden Zitate etwas eingekürzt:
F3K Total hat geschrieben:Es gibt Ereignisse, die die Makros ausführen.
  • Anwendungsereignisse, wie z.B Programmstart, Programmende. ........Anwendungereignisse sind also Dokumentunabhängig.
Dem stimme ich zu 100% zu. Wenngleich es wenig sinnvoll erscheint, in dieser Situation Ereignisse aufzulisten / anzubieten, die sich NUR auf Dokumente anwenden lassen (allerdings bin ich mir hier jetzt nicht 100% sicher, ob wiklich welche dabei wären).
F3K Total hat geschrieben:[*]Dokumentereignisse, wie z.B. bei Dir Neues Dokument. ....... Sie sind von diesem Dokument abhängig. Zugeordnete Makros werden bei dem gewählten Dokumentereignis ausgeführt.[/list]
Das Beispiel ist etwas unglücklich gewählt (ich verstehe aber, was Du sagen möchtest), denn das Ereignis Neues Dokument kann natürlich auch ein Programmereignis sein. Entscheidend ist hier wieder wo die Verknüpfung gespeichert wird. Und dazu dient wiederum die ComboBox "Speichern in" in gleichem Fenster. Trotzdem wird auch in dieser Situation das Ereignis Programmstart angeboten. Da kann ich mir beim besten Willen nicht vorstellen, daß es in einem Dokument Sinn ergibt. Getestet habe ich das jedoch nicht.
F3K Total hat geschrieben:[*]Elementereignisse (z.B. eine Schaltfläche der du unter Kontrollfeld/Ereignisse ein Makro zur Ausführung zuordnen kannst.) Zugeornete Makros werden ausgeführt, wenn dem Element das gewählte Ereignis widerfährt[/list]
Dieser Part gehört glaube ich nicht zu dem Dialog "Anpassen". Denke mal Du hast den nur zur vollständige Übersicht mit angefügt.

Ich hoffe, ich konnte meinen Standpunkt ausreichend klar darstellen. Im Grundsatz widersprechen wir uns ja auch garnicht! Es ist lediglich so, daß Du davon ausgehst, es sei entscheidend von wo aus der Dialog aufgerufen wird (diese These wird jedoch weder im Dialog, noch in der Dokumentation unterrstützt) und ich behaupte, dass der Dialog, egal von wo aus er aufgerufen wird, auch immer gleich funktionieren sollte (die Begründung spiegelt sich in den 6 zuvor von mir genannten Gründen wieder).

Gruß Klaus

Nachtrag: Dateien jetzt angehängt
Dateianhänge
HilfeF1.PNG
HilfeF1.PNG (99.36 KiB) 2991 mal betrachtet
Aus_OO_Dokument.PNG
Aus_OO_Dokument.PNG (37.31 KiB) 2991 mal betrachtet

Re: Makro automatisch ausführen, aber wie?

von F3K Total » Mi, 19.12.2012 19:17

Moin Tiijer,
HHTiger hat geschrieben:es besteht im unteren Auswahl-Feld (ComboBox) "Speichern in" die Möglichkeit, das Dokument auszuwählen um genau das dem OO mitzuteilen.
Ich versuche es mit meinen eigenen Worten zu erklären:
Es gibt einen Ort an dem der Makro Code gespeichert wird:
  • Makros/Module/Bibliotheken werden innerhalb eines Dokumentes gespeichert, Vorteil: die Makros sind immer dabei.
  • Makros/Module/Bibliotheken werden in OpenOffice (z.B. im Benutzerverzeichnis) gespeichert, Vorteil: gleiche Aufgaben in unterschiedlichen Dokumenten nutzen das gleiche Makro, Nachteil, ein an ein Dokumentereignis gebundenes Makro fehlt auf einem anderen Rechner.
Diesen Ort, und nur den Ort, wählst Du mit der Combobox "Speichern in" aus.

Und:
Es gibt Ereignisse, die die Makros ausführen.
  • Anwendungsereignisse, wie z.B Programmstart, Programmende. Diese werden unter Extras/Anpassen/Ereignisse im Programmfenster eingetragen. Genau hierhin kommst Du auch, wenn Du aus der Basic Umgebung auf Makro auswählen/zuordnen klickst, denn du befindest Dich auf Anwendungsebene.Anwendungereignisse sind also Dokumentunabhängig.
  • Dokumentereignisse, wie z.B. bei Dir Neues Dokument. Diese werden z.B. im Fenster einer Writerdatei unter Extras/Anpassen/Ereignisse eingetragen. Sie sind von diesem Dokument abhängig. Zugeordnete Makros werden bei dem gewählten Dokumentereignis ausgeführt.
  • Elementereignisse (z.B. eine Schaltfläche der du unter Kontrollfeld/Ereignisse ein Makro zur Ausführung zuordnen kannst.) Zugeornete Makros werden ausgeführt, wenn dem Element das gewählte Ereignis widerfährt
Aus meiner Sicht kann hier von einem Bug nicht die Rede sein.

Gruß und viel Erfolg beim weiterforschen
R

Re: Makro automatisch ausführen, aber wie?

von HHTiger » Mi, 19.12.2012 13:18

Hallo R ... moin, moin
danke für den Tipp. Kaum macht man etwas richtig und schon funzt es. Aber mal im Ernst, es scheint sich tatsächlich um 2 kleine "Bugs" zu handeln, denn der Dialog kann über mehrere Wege aufgerufen werden und
F3K Total hat geschrieben:Hier liegt der Fehler, du versuchst das Makro in der Basic Umgebung zuzuweisen.
Die Basic Umgebung weiss nicht, welchem Dokument du das Makro zuweisen möchtest, du könntest mehrere Dokumente offen haben.
es besteht im unteren Auswahl-Feld (ComboBox) "Speichern in" die Möglichkeit, das Dokument auszuwählen um genau das dem OO mitzuteilen.

1.) Bug: Aus dem aktuellen Dokument: <Extras><Makros><Makros verwalten><OpenOffice.org Basic ...>. In dem nun offenen Fenster "OpenOffice Basic Makros" kann man nun das richtig Dokument mit dem richtigen Makro auswählen (oder auch nicht, denn das ändert nichts an der weiteren Funktion) und anschliessend mit dem Button <Zuordnen...> in den Dialog "Anpassen" gehen. Dort ist nun in der unteren ComboBox "Speichern in" das richtige Dokument vorbelegt. Von daher ist OO schon bekannt, um welches Dokument es geht. Der Bug besteht nun meiner Meinung nach darin, dass bei einem Doppelklick auf das Ereignis nicht das zuvor ausgewählte Makro übernommen wird bzw. dass der sich öffnende Dialog "Makro-Selektor" nicht die Makros des ausgewählten Dokumentes auflistet.

2.) Bug: ähnlich funktioniert das auch aus der Basic Umgebung. Allerdings wird dort schon in ComboBox "Speichern in" nicht das oder die geöffneten Dokumente angeboten, obwohl es natürlich möglich wäre. (vorausgesetzt Bug 1 wäre bereinigt, dann sollten auch die nachfolgende Dialog richtig laufen)

btw: weiß zufällig jemand wo bzw. bei wem man diese Bugs melden könnte/sollte?

Gruß Klaus

Re: Makro automatisch ausführen, aber wie?

von F3K Total » Mi, 19.12.2012 06:35

Moin,
HHTiger hat geschrieben:2.) im selben Fenster dann <Extras> <Anpassen...>
Hier liegt der Fehler, du versuchst das Makro in der Basic Umgebung zuzuweisen.
Die Basic Umgebung weiss nicht, welchem Dokument du das Makro zuweisen möchtest, du könntest mehrere Dokumente offen haben.
Wechsle ins aktuelle Dokument (Test.ott) und dort unter Extras/Anpassen ...
Dann klappst auch mit dem Makro.

Gruß R

Re: Makro automatisch ausführen, aber wie?

von HHTiger » Mi, 19.12.2012 02:19

F3K Total hat geschrieben:Moin,
bzgl. Crossposting:
HHTiger hat geschrieben:Wieso zeigt der Link auf ein anderes Forum?
Welche Referenz soll fehlen?
Der Link zeigt auf den gleichen Beitrag von Dir! In eben einem anderen Forum.
Du hast die gleiche Frage in mehreren Foren gestellt.
Du beschäftigst also mehrere Leute mit der gleichen Frage.
Antworten die z.B. hier gegeben wurden, sind im anderen Forum nicht sichtbar und werden ggf. mehrfach bearbeitet. Unnötigerweise. Darum ist das unhöflich.
Wenn du schon in zwei Foren nachfragst solltest Du sie wenigstens verlinken (das ist mit Referenz gemeint)
Hier noch ein anderer Beitrag zum Thema
R
Danke für die freundliche Aufklärung, habe bereits eine entsprechende Nachricht in dem anderen Forum gepostet. Werde sie hier jetzt aber nicht wiederholen, um nicht zum Wiederholungstäter zu werden. :wink:

Vielleicht als Verbesserungsvorschlag, denn jeder kann mal einen Fehler machen, aber niemand möchte unhöflich sein:

Bitte beachte folgendes zum Thema CROSSPOSTING

Der Beitrag ist wirklich nett geschrieben und verdeutlicht die Position beider Seiten.

Re: Makro automatisch ausführen, aber wie?

von HHTiger » Mi, 19.12.2012 01:56

Hallo Stephan,
vorab: Dein Beispiel (vielen Dank dafür!) funktionert bei mir, allerdings kann ich die Erstellung nicht so ganz nachvollziehen. Ich benutze OpenOffice 3.4.1.

Von der Sache her weist Du dem Event "Neues Dokument" das Makro "Main" zu. Klar.

Daß das bei Dir funktioniert halte ich für einen Zufall oder Bug, da man das Makro "Main" NICHT aus dem Dokument benutzen kann. Die Tatsache, daß es aber funktioniert kommt meiner Meinung nach daher, daß Du überall die Standard-Vorgaben benutzt.

Beispiel: Makroname "Main", Bibliotheksname "Modul1".

Versuche einmal in meinem Dokument das Makro "ShowMessageBox" aus der Bibliothek "MyModule" mit dem Event "Dokument öffnen" zu verknüpfen.
Die Möglichkeit wird garnicht erst angeboten.

Von der Vorgehensweise müßte es eigentlich folgendermaßen funktionieren:

1.) Das Makro "ShowMessageBox" wurde im Fenster "OpenOffice.org Basic" erstellet.

2.) im selben Fenster dann <Extras> <Anpassen...>

3.) im Fenster "Anpassen" nun das Ereignis "Dokument Öffnen" auswählen und dann rechts unter "Zuweisen:" den Button "Makro..." anklicken.

4.) im Fenster "Makro-Selektor" müsste man jetzt auf der linken Seite unter "Bibliothek" zunächst das Dokument "Test.ott" und die Bibliothek "MyModul" auswählen und dann rechts unter "Name des Makros" das Makro "ShowMessageBox" auswählen und abschliessend mit dem "OK" Button beenden.

Doch leider sind die Schritte unter 4.) nicht möglich, da das Dokument bzw. Template "Test.ott" garnicht angeboten wird! :cry:



Zum Thema VB:

"Derivat" ("Abkömmling", von lateinisch derivare "ableiten")

Visual Basic Classic (entwickelt von Alan Cooper) war quasi der Urvater aller heute gängigen BASIC-Dialekte. Insbesobere sind VBA und VBScript Dialekte von VB!

Da z.B. OpenOffice-BASIC über den nahezu identischen Befehlssatz wie VB oder VBA verfügt und sich hauptsächlich in der API von VBA unterscheidet, kann man hier durchaus von einem "Abkömmling" sprich Derivat von VB oder VBA sprechen.

Letztlich sind somit alle heute existierenden BASIC-Dialekte Derivate des 1964 von John George Kemeny und Thomas Eugene Kurtz entwickelten BASIC.

Allerdings muss ich Dir in einem Punkt recht geben. Aus Sicht der Nomenklatur passt Dialekt besser, da es sich um eine Sprache handelt. :wink:

Gruss Klaus
Dateianhänge
Test.ott
(8.83 KiB) 111-mal heruntergeladen

Re: Makro automatisch ausführen, aber wie?

von Stephan » Di, 18.12.2012 22:02

Vermute mal du meinst => das Makro dem Ereigniss zuweisen. Das lässt sich jedoch nicht auswählen, da das Makro > Bestandteil des Templates ist.
dann solltest Du DEine Version von OO oder LO nennen, denn normalerweise ist das selbstverständlich möglich, Beispiel anhängend.
ich das in OO implementierte VB-Derivat
es handelt sich um einen ganz normalen Basic-Dialekt unter Vielen und kein VB-Derivat. (Wenn überhaupt wäre StarBasic mit VBA zu vergleichen, nicht jedoch mit VB.)


Gruß
Stephan
Dateianhänge
Dokumentvorlage_mit_Autostartmakro .ott
(9.03 KiB) 185-mal heruntergeladen

Re: Makro automatisch ausführen, aber wie?

von F3K Total » Di, 18.12.2012 21:58

Moin,
bzgl. Crossposting:
HHTiger hat geschrieben:Wieso zeigt der Link auf ein anderes Forum?
Welche Referenz soll fehlen?
Der Link zeigt auf den gleichen Beitrag von Dir! In eben einem anderen Forum.
Du hast die gleiche Frage in mehreren Foren gestellt.
Du beschäftigst also mehrere Leute mit der gleichen Frage.
Antworten die z.B. hier gegeben wurden, sind im anderen Forum nicht sichtbar und werden ggf. mehrfach bearbeitet. Unnötigerweise. Darum ist das unhöflich.
Wenn du schon in zwei Foren nachfragst solltest Du sie wenigstens verlinken (das ist mit Referenz gemeint)
Hier noch ein anderer Beitrag zum Thema
HHTiger hat geschrieben:da das Makro Bestandteil des Templates ist. Zugewiesen werden können nur die Makros, die nicht Bestandteil des Dokumentes sind
Das geht, Makros aus einem Dokument können gestartet werden, siehe Beitrag unten von Stephan.

R

Re: Makro automatisch ausführen, aber wie?

von HHTiger » Di, 18.12.2012 21:51

F3K Total hat geschrieben:Moin HHTiger,
CROSSPOSTING ohne Referenz ist unhöflich!
R
Sorry, aber ich empfinde es als unhöflich, wenn Du mir hier solch einen Spruch reindrückst ohne zu erklären, was Du damit eigentlich meinst.

Wieso CROSSPOSTING???
Was heisst Crossposting?
Wieso zeigt der Link auf ein anderes Forum?
Welche Referenz soll fehlen?
Wieso ist mein Posting unhöflich?

Unter Crossposting verstehe ich das Posten desselben Postings unter verschiedenen Rubriken des selben Forums!

Nach oben