2.3.2 Wie kann man Makros mit Programm- oder Dokumentereignissen verbinden?
OpenOffice bietet die Möglichkeit Makros mit Ereignisse des Programmes zu verknüpfen. Ein solches Ereignis ist zum Beispiel der Programmstart. Aber es gibt natürlich noch weitere Ereignisse. Mit einigen dieser Ereignisse kann man den Ausruf von Makros verknüpfen.
Dabei kann man zwei Arten von Ereignissen unterscheiden: Solche die vom Programm allgemein ausgehen und solche die mit einem Dokument verbunden sind. Das klingt ein wenig undurchsichtig ist aber gar nicht so schwer. Der Programmstart ist ein ziemlich eindeutiges Ereignis des Programmes. Mit diesem Ereignis kann man Makros verknüpfen. Zum Beispiel um Parameter zusetzen. Das Öffnen eines Dokumentes ist auch ein Ereignis. Aber jetzt gibt es zwei Sichtweisen und auch zwei Ereignisse. Erst mal ist es ein Ereignis des Programmes. Dann ist es aber auch ein Ereignis des Dokumentes. Wie? Naja, im ersten Fall denkt sich das Programm: "Juhu ich bekomme arbeit, ich öffne ein Dokument". Im zweiten Fall denkt sich aber das Dokument: "Mist ich habe so schön geschlafen und jetzt werde ich geöffnet". Das erste Ereignis bezieht sich auf jedes Dokument, das geöffnet wird. Der zweite Fall bezieht sich nur auf das geöffnete Dokument. Diese zwei Ereignis treten natürlich zeitgleich auf.
Ereignisse die das Programm allgemein betreffen kann man dazu Nutzen Routinen ablaufenzulassen die immer erfolgen sollen. Zum Beispiel kann man dafür sorgen das ein neues Dokument immer sofort gespeichert werden muß. Dann verbindet man mit dem Erzeugen eines neuen Dokumentes eine Speicher-Routine.
Möchte man aber das ein Makro nur beim Öffnen eines bestimmten Dokumentes erfolgt, verbindet man diese mit dem Öffnen-Ereignis des Dokumentes. Beziehungsweise bei Dokumentenvorlagen mit den Erzeugen-Ereignis.

Diese Verknüpfung erfolgt im Menü Extras ->> Anpassen -> Register Ereignisse (Events).
graphic

Unten, bei "Speichern in" erfolgt die Zuordnung ob das Ereignis sich auf das Programm bezieht oder auf ein Dokument.

Welche Ereignisse gibt es?

 
 
Programm
Dokument
Programmstart
 
X
X
Programmende
 
X
X
Dokument erzeugen
Neues Dokument
X
X
Dokument wird geschlossen
Keine Ahnung worin bei den beiden der
X
X
Dokument schließen
Unterschied besteht
X
X
Dokument gesichert als
Ereignis nach dem "Speichern unter"-Dialog
X
X
Dokument wurde gesichert als
Ereignis nach dem Speichern
X
X
Dokument sichern
Direkt vor dem speichern
X
X
Dokuement wurde gesichert
Direkt nach dem speichern
X
X
 
Achtung Falle: Dokument sichern bei einem noch nicht gespeicherten Dokument führt zu dem Ereignis Dokument sichern als
 
 
Dokument drucken
Nach dem Druckdialog vor dem Drucken
X
X
Dokument wurde gedruckt
Nach dem Drucken
 
X
Dokument aktiviert
Dokument erhält den Fokus der Anwendung
X
X
Dokument deaktiviert
Der Fokus wechselt von dem Dokument weg
X
X
Geändert Status wurde geändert
Dokument wurde geändert
X
X
Serienbrief drucke
 
 
Nur Writer
Seitenzahl hat sich geändert
 
 
Nur Writer
               
Die Ereignisse werden im obigen Menü mit "Makro zuweisen ausgewählt. Links wählt man die Bibliothek aus. Zur Auswahl stehen hier "MyMakros", "OpenOffice Makros" und die Bibliotheken der geöffneten Dateien. Rechts kann man dann nach der Auswahl des Moduls das gewünschte Makro auswählen. Durch die Auswahl der Bibliothek in geöffneten Dokumeten darf man sich nicht verwirren lassen. Verknüpft man hier ein Makro mit einem OpenOffice-Ereignis wird dieses nicht ausgeführt.

graphic

Um die Verknüpfung wieder aufzuheben, wählt man das Ereignis aus und drückt den Button "Zuweisung aufheben" im Dialog "Anpassen".

graphic