Fehlermeldung beim Verlassen eines Formularfelds

Ich habe unter Wordá97 ein Formular angelegt. Wenn ich jedoch das Formular als Benutzer anwende, erhalte ich beim Verlassen eines Feldes immer den Laufzeitfehler 4198: Befehl mi▀lungen. Die im Visual-Basic-Editor markierte Anweisung zum Schlie▀en des Dokuments ist jedoch vollkommen korrekt. Was kann dieses merkwⁿrdige Verhalten verursachen, und wie lΣ▀t sie sich beseitigen?

Die Anweisung fⁿr das Schlie▀en selbst mag korrekt sein. An dieser Stelle ist sie jedoch fⁿr Visual Basic nicht durchfⁿhrbar. Aus technischen Grⁿnden lΣ▀t sich das Formular erst dann schlie▀en, wenn alle Makroprozeduren beendet sind. Um das Problem zu umgehen, mⁿ▀te es also m÷glich sein, einen Vermerk ⁿber das Schlie▀en des Formulars anzulegen, alle Makros abzuarbeiten und erst dann die gewⁿnschte Aktion durchzufⁿhren. Dieses Verhalten k÷nnen Sie durch die OnTime-Methode erreichen. Mit Hilfe dieser Methode legen Sie einen Zeitpunkt fest, zu dem Word ein bestimmtes Makro ausfⁿhren soll. So ist es m÷glich, beim Verlassen des Formularfelds das Schlie▀en des Dokumentes fⁿr den nΣchst m÷glichen Zeitpunkt vorzumerken. Da die Methode jedoch keinen reinen Quelltext, sondern nur einen Makronamen als Parameter akzeptiert, mⁿssen Sie die Aktionen in zwei Makros aufteilen. Das sieht dann zum Beispiel so aus:

Sub MakroBeimVerlassen ()╢
Application.OnTime When:=Now, Name:="DokumentSchliessen"╢
End Sub╢
╢
Sub DokumentSchliessen ()╢
Application.ActiveDocument.Close (wdDoNotSaveChanges)╢
End Sub╢
Das erste Makro fⁿhren Sie beim Verlassen des Formularfelds aus. Es vermerkt mit Hilfe der OnTime-Methode, da▀ noch das Makro Dokument-Schliessen auszufⁿhren ist. Als Parameter finden Sie eine Zeitangabe û in diesem Fall den Rⁿckgabewert der Funktion Now û und den Namen des zu diesem Zeitpunkt auszufⁿhrenden Makros. Dank des Makroaufbaus st÷rt der Zeitpunkt nicht weiter, es ist einfach der nΣchstm÷gliche. Nach dem Vermerk des Makroaufrufs kann Word das Formularmakro beenden. Dann wendet es sich der nΣchsten Aufgabe zu: Der Ausfⁿhrung des zweiten Makros. Dort finden Sie die Ihnen bereits bekannte Anweisung zum Schlie▀en des Dokuments. Falls Sie die Inhalte des Dokuments zuvor noch speichern wollen, erweitern Sie das zweite Makro vor der Schlie▀en-Anweisung mit dieser Zeile:
Application.ActiveDocument. Save╢
Jetzt sollte die Fehlermeldung nicht mehr auftauchen.