Es ist schwierig, Ihnen genaue Informationen dafür zu geben, die Komponente ist alt. Nur ein bisschen Hintergrund.
Das UserForm-Objekt wird von Microsoft Forms 2.0, einer ActiveX-Komponentenbibliothek, implementiert. Es war eine universelle Bibliothek zum Hinzufügen von Formularen zu beliebigen Anwendung, es war nicht nur auf Office-Anwendungen beschränkt. Sie finden es wieder auf Ihrem Computer in C: \ Windows \ syswow64 \ fm20.dll (System32 für eine 32-Bit-Maschine). Die Dokumentation für diese Komponente wurde früher von fm20.chm bereitgestellt. Diese Hilfedatei ist nicht mehr von Microsoft verfügbar, Sie können sie immer noch mit einer Google-Abfrage finden. Allerdings sehen die meisten Websites, die es anbieten, sehr schattig aus. This one sah am wenigsten schleimig aus. Das Anzeigen dieser Datei ist ziemlich mühsam, ich kann das Inhaltsverzeichnis durchsuchen, aber keine der Seiten zeigt Text mehr an.
Eine Problemumgehung, die ich fand, war, die Datei mit dem HTML Workshop-Dienstprogramm zu dekompilieren. Das erzeugt eine Datei namens f3evtError.htm, es wie folgt aus (bearbeitet für den Inhalt) aussieht:
Fehler Ereignis
Tritt ein, wenn ein Steuerelement einen Fehler erkennt und nicht die Fehlerinformation zu einem Aufrufprogramm zurück.
Syntax
Private Sub object_Error(ByVal Number As Integer, ByVal Description As MSForms.ReturnString, _
ByVal SCode As SCode, ByVal Source As String, ByVal HelpFile As String, _
ByVal HelpContext As Long, ByVal CancelDisplay As MSForms.ReturnBoolean)
Die Fehlerereignissyntax besteht aus folgenden Teilen:
- Objekt Erforderlich. Ein gültiger Objektname.
- Index: Erforderlich. Der Index der Seite in einer MultiPage, die diesem Ereignis zugeordnet ist.
- Nummer: Erforderlich. Gibt einen eindeutigen Wert an, mit dem das Steuerelement den Fehler identifiziert.
- Beschreibung: Erforderlich. Eine textuelle Beschreibung des Fehlers.
- SCode: Erforderlich. Gibt den OLE-Statuscode für den Fehler an. Die niederwertigen 16 Bits geben einen Wert an, der mit dem Number-Argument identisch ist.
- Quelle: Erforderlich. Die Zeichenfolge, die das Steuerelement identifiziert, das das Ereignis ausgelöst hat.
- HelpFile: Erforderlich. Gibt einen vollständig qualifizierten Pfadnamen für die Hilfedatei an, die den Fehler beschreibt.
- HelpContext: Erforderlich. Gibt die Kontext-ID des Hilfedateithemas an, das eine Beschreibung des Fehlers enthält.
- CancelDisplay: Erforderlich. Gibt an, ob die Fehlerzeichenfolge in einem Meldungsfeld angezeigt werden soll.
Bemerkungen
Der Code für das Fehlerereignis geschrieben bestimmt, wie die Steuerung an den Fehlerzustand reagiert.
Die Fähigkeit, Fehlerbedingungen zu handhaben, variiert von Anwendung zu Anwendung. Das Fehlerereignis wird ausgelöst, wenn ein Fehler auftritt, für den die Anwendung nicht eingerichtet ist.
Das ist alles, leider. Es ist vage, weil die Komponente in so vielen verschiedenen Arten von ActiveX-Hosts verwendet werden kann und die Fehlerbehandlung ein Detail der Host-Implementierung ist. Ich denke, der letzte Absatz ist das, worüber du wirklich fragst. Ich würde sagen, es ist ziemlich sicher davon auszugehen, dass diese Office-Apps dieses Ereignis nicht auslösen, da die Office-Dokumentation dies nicht erwähnt. Die Tatsache, dass das Ereignis noch im VBA-Editor sichtbar ist, ist nur ein Nebeneffekt der Funktionsweise des Objektmodells. Es gibt keine einfache Möglichkeit für den Editor, es herauszufiltern, es zeigt einfach alle der veröffentlichten Ereignisse des Objekts an.
Excel VBA? Zugriff auf VBA? Kannst du Beispiel mit Code angeben, was versuchst du zu tun? – shahkalpesh
Dies ist keine Microsoft Office-Anwendung. – lfrandom
Ich versuche, ein Makro mit einem Benutzerformular zu erstellen. Ereignisse im Benutzerformular könnten einen Fehler enthalten. Ich möchte, dass dieser Fehler dem Hauptmodul gemeldet wird, anstatt einen Fehlerhandler in jedes Ereignis im Formular einbauen zu müssen. – lfrandom