Das Löschen von Forms, Modulen oder Klassen zur Laufzeit aus einer Vorlage geht erfolgt direkt über die Angabe des Namens. Befindet sich z.B. das Modul Modul1 in der Dokumentvorlage normal.dot, kann es mit folgendem Aufruf gelöscht werden:
Achtung:
Das Modul o.a. wird direkt und ohne Sicherheitsabfrage gelöscht. Es wird auch nicht, wie beim manuellen Löschen in der IDE, erst ein export angeboten!
Dieser direkte Aufruf beinhaltet aber auch ein Risiko: Wird das Makro ein zweites mal aufgerufen oder stimmt der Modul-Name nicht, wird die Fehlermeldung 9 ("Index außerhalb des gültigen Bereichs") ausgegeben, da das angegebene Modul nicht mehr in der Liste der Module vorhanden ist.
Um Fehler zu vermeiden, sollte daher vor dem Löschen zuerst geprüft werden, ob das Modul, die Form oder die Klasse in der Dokumentvorlage vorhanden ist. Dieses kann nur mit einer Prüfung aller enthaltenen Komponenten (VBComponents) erreicht werden.
Dazu wird eine Laufvariable i verwendet, die über alle Komponenten läuft. Der zu entfernde (Modul-)Name wird in der Variablen sName eingetragen. Nur wenn der Name gefunden wird, wird das Modul entfernt und anschließend die Suche beendet, da der Name eineindeutig ist.
Um Module aus anderen Dokumentvorlagen zu entfernen, müssen diese zusätzlich in einer For ... Each Schleife durchlaufen werden. Sofern aber der Name in mehreren Vorlagen verwendet wurde, wird dieses mit obigem Makro nur beim ersten Auffinden gelöscht; u.U. wird dann das falsche Modul gelöscht.