Die Automakros werden gerne eingesetzt. Sie wollen beim Öffnen eines Dokumentes einen Dialog anzeigen. Oder wenn aufgrund einer bestimmten Vorlage ein neues Dokument erstellt wird, soll gleich das Dokument gespeichert werden.
Das sind die klassischen Aufgaben der Automakros. Es gibt folgende Automakros, die Sie einsetzen können:
Makroname |
Ereignis |
Art der Datei |
Beschreibung |
AutoNew |
Laden einer Vorlage |
Dokumentvorlage |
Beim Erstellen eines neuen Dokuments aufgrund der Vorlage, in der das Automakro steht |
AutoOpen |
Direktes Öffnen eines Dokumentes oder einer Vorlage |
Dokument Dokumentvorlage |
Beim Öffnen eines vorhandenen Dokuments oder direktes Öffnen einer Dokumentvorlage |
AutoExec |
Laden einer Vorlage |
Dokumentvorlage |
Beim Starten von Word oder Laden einer globalen Vorlage oder eines Addins |
AutoClose |
Schließen eines Dokumentes / Vorlage | Dokument Dokumentvorlage |
Beim Schließen eines Dokuments oder einer Dokumentvorlage, die direkt geöffnet war |
AutoExit |
Entladen einer Vorlage |
Dokumentvorlage |
Beim Beenden von Word oder Entladen einer globalen Vorlage oder eines Addins |
Die Frage, die sich natürlich jetzt stellt ist klar: wo kommt denn das Automakro hin?
Die Anwort ist wie so oft nicht eindeutig. Denn es gibt verscheidenen Wege ein Automakro einzubinden. Sie könne die Automakros aus der Tabelle einfach in ein beliebiges Modul einfügen, der Name des Moduls ist dabei völlig unerheblich. In diese Modul kommt einfach eine Prozedur mit dem Namen aus der Tabelle. Das wars, so findet Word automatisch dieses Makro.
Sie könne auch den Weg über Word selbst gehen: einfach über das Menü Dokumentvorlage auswählen. Bei Name den Namen aus der Tabelle wählen und auf Erstellen klicken. Damit wechseln Sie in den VBA-Editor an die Stelle, wo Word automatisch die Prozedur erstellt hat. Dort geben Sie dann Ihren Code ein.
| | und dort Ihre gewünschteEs gibt aber noch eine weitere Möglichkeit: Sie erstellen ein Modul und benennen es nach den Namen aus der Tabelle. Nun gehen Sie in das Codefenster für das Modul und schreiben eine Prozedur, sie den Namen Main haben muss: Sub Main(). Dort schreiben Sie Ihren Code rein. Damit erkennt Word auch das Automakro.
Aber damit noch nicht genug. Denn es gibt noch eine weitere Möglichkeit Automakros zu erstellen. Dazu gibt es Ereignisse in dem Modul ThisDocument. Dort finden Sie in der folgenden Tabelle aufgelisteten Ereignisse. Diese können Sie auch als Automakros benutzen. Aber bedenken Sie, dass bei einem Addin im Startup-Ordner diese Makros grundsätzlich nicht abgearbeitet werden.
Makroname |
Ereignis |
Beschreibung |
Document_Open() |
Direktes Öffnen einer Vorlage oder eines Dokumentes |
Beim Öffnen eines vorhandenen Dokuments oder direktes Öffnen einer Dokumentvorlage |
Document_New() |
Erstellen eines neuen Dokumentes aufgrund der Vorlage |
Beim Erstellen eines neuen Dokuments aufgrund der Vorlage, in der das Automakro steht |
Document_Close() |
Schließen eines Dokumentes / Vorlage |
Beim Schließen eines Dokuments oder einer Dokumentvorlage, die direkt geöffnet war |
Document_Sync() |
Dokument synchronisieren |
Beim Synchronisieren einer lokale Kopie eines Dokuments, das Teil eines Dokumentarbeitsbereichs ist, mit der Kopie auf dem Server |
Document_XMLAfterInsert() |
XML-Element hinzufügen |
Beim Hinzufügen eines neues XML-Elementes zu einem Dokument, wird für jedes Element ausgelöst |
Document_XMLBeforeDelete() |
XML-Element löschen |
Beim Löschen eines XML-Elementes aus einem Dokument, wird für jedes Element ausgelöst |
Die Codebeispiele listen die Möglichkeiten nochmal für die gewünschten Ereignisse wie Öffnen oder Schließen auf.
Aber Automakros können auch lästig sein. Sie haben eine Vorlage mit einem Automakro, das soll aber jetzt nicht beim Starten ausgeführt werden. Wei können Sie das verhindert? Ganz einfach: Während die Vorlage geöffnet wird, drücken Sie die Taste Umschalt bzw. Shift solange, bis die Vorlage geöffnet ist. Damit wird das Ausführen der Automakros verhindert.
Aber Sie können auch mit VBA das ausführen von Automakros verhindern. Dies funktioniert mit dem Befehlszeile:
WordBasic.DisableAutoMacros