Während es möglich ist, ein VBA-Makro mithilfe des im vorherigen Tipp vorgestellten Ansatzes von einem anderen Makro aus auszuführen, kann es vorkommen, dass ein solcher Ansatz die Aufgabe nicht erfüllt. Stattdessen müssen Sie nach einer Lösung suchen, die eine ausfallsichere Methode zum Ausführen eines Makros ermöglicht. Ein Ansatz besteht darin, den Befehl Call in VBA zu verwenden. Bevor Sie den Befehl verwenden können, müssen Sie dem aufrufenden Projekt jedoch einen Projektverweis hinzufügen. (In Projekten bezieht sich VBA auf die Sammlung von VBA-Modulen, Formularen usw. in einer Vorlage. Beispielsweise bezeichnet VBA die Vorlage Normal.dot als „Normal“ -Projekt.) Verweise zwischen Projekten stellen eine eindeutige definierte Verknüpfung zwischen a bereit Projekt aufrufen und das aufzurufende Projekt.

Angenommen, das MyMacro-Makro (das Sie ausführen wollten) war Teil der CoolDoc-Vorlage. Um Call in VBA ordnungsgemäß verwenden zu können, müssen Sie dem Makro, das MyMacro aufruft, einen Verweis auf das CoolDoc.dot-Projekt hinzufügen. Leider ist dies aufgrund eines möglichen „gottcha“ in VBA etwas leichter gesagt als getan: Anders als „Normal“

Projekt, VBA gibt allen vom Benutzer erstellten Vorlagenprojekten den Standardprojektnamen „TemplateProject“. Dies kann zu Problemen führen, da ein eindeutiger Projektname am besten geeignet ist, wenn Sie genau wissen möchten, welches Makro ausgeführt werden soll. Gehen Sie folgendermaßen vor, um CoolDoc.dot einen eindeutigen Projektnamen zu geben:

  1. Stellen Sie sicher, dass die Vorlage CoolDoc.dot geöffnet ist.

  2. Zeigen Sie den VBA-Editor an, indem Sie Alt + F11 drücken.

  3. Klicken Sie im Projektfenster oben links im VBA-Editor mit der rechten Maustaste auf den Ordner für die Vorlage. Der Ordner heißt entweder Projekt (CoolDoc). Word zeigt ein Kontextmenü an.

  4. Wählen Sie im Menü Kontext die Option Projekteigenschaften. Das Dialogfeld Eigenschaften wird angezeigt.

  5. Geben Sie im Feld Projektname einen geeigneten Namen für Ihr Projekt ein.

(CoolDoc wäre ein guter Name, solange er eindeutig ist.)

  1. Klicken Sie auf OK. Das Dialogfeld verschwindet und das Projekt wird in CoolDoc umbenannt.

Wenn Sie alle Objekte unter CoolDoc erweitern, sollten ein oder zwei Module im Projekt angezeigt werden. (Denken Sie daran, dass VBA-Makros in Modulen enthalten sind.) Nehmen wir für diese Diskussion an, dass MyMacro (dasjenige, das Sie ausführen möchten) im HotStuff-Modul des CoolDoc-Projekts enthalten ist.

(Alle diese Objektnamen werden in Kürze verwendet. An dieser Stelle müssen Sie nur die Namen notieren, die für Ihr Projekt und das Modul mit dem Makro verwendet werden.)

Jetzt können Sie die CoolDoc-Projektreferenz tatsächlich zu dem Projekt hinzufügen, von dem aus das Makro aufgerufen wird. Nehmen wir in diesem Fall an, Sie rufen es über ein Makro im Normal-Projekt auf. Sie können die Referenz hinzufügen, indem Sie die folgenden Schritte ausführen (vorausgesetzt, der VBA-Editor ist noch geöffnet):

  1. Wählen Sie im Projektfenster oben links im VBA-Editor den Ordner Normal aus.

  2. Wählen Sie im Menü Extras die Option Referenzen. Das Dialogfeld Referenzen wird angezeigt. (Siehe Abbildung 1.)

  3. In der Liste der verfügbaren Referenzen finden Sie CoolDoc.

  4. Stellen Sie sicher, dass das Kontrollkästchen links neben der Option CoolDoc aktiviert ist.

  5. Klicken Sie auf OK.

Schließlich können Sie die Call-Anweisung zu dem Makro hinzufügen, von dem aus Sie MyMacro aufrufen möchten. Die Befehlszeile würde wie folgt aussehen:

Call CoolDoc.HotStuff.MyMacro

Diese Befehlszeile bewirkt, dass VBA das gewünschte Makro ohne die Möglichkeit einer Mehrdeutigkeit ausführt. Es gibt jedoch etwas Wichtiges zu beachten.

Wenn Sie in Normal einen Verweis auf das CoolDoc-Projekt einfügen, lädt Normal bei jedem Start von Word eine Kopie von CoolDoc – auch wenn keine Dokumente geöffnet sind, die auf der Vorlage CoolDoc.dot basieren.

Dieses Laden von CoolDoc wirft eine offensichtliche Frage auf: Was bringt es in VBA, MyMacro in CoolDoc.dot einzufügen, da dadurch weder Ladezeit noch Ressourcennutzung gespart werden? Die kurze Antwort lautet, dass es keinen anderen Punkt gibt, als dass CoolDoc.dot möglicherweise ein offensichtlicherer Ort ist, um Code einzufügen, der sich nur auf Dinge in CoolDoc.dot bezieht. (Dieses ganze Thema der vernünftigen Projektgestaltung ist ein viel zu großes Thema, um es in diesem einzigen Tipp zu diskutieren.)

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der WordTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

WordTips ist Ihre Quelle für kostengünstige Microsoft Word-Schulungen.

(Microsoft Word ist die weltweit beliebteste Textverarbeitungssoftware.) Dieser Tipp (86) gilt für Microsoft Word 97, 2000, 2002 und 2003. Sie finden eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Word (Word 2007) und später) hier: