Трудно дать вам точную информацию об этом, компонент древний. Просто какой-то фон.
Объект UserForm реализован Microsoft Forms 2.0, библиотекой компонентов ActiveX. Это была библиотека общего назначения для добавления форм в любое приложение, а не только приложения Office. Вы можете найти его на своем компьютере в c:\windows\syswow64\fm20.dll (system32 для 32-разрядной машины). Документация для этого компонента раньше поставлялась fm20.chm. Этот файл справки больше недоступен в Microsoft, вы все еще можете найти его с помощью запроса Google. Однако большинство сайтов, предлагающих его, выглядят очень подозрительно. Этот выглядел наименее скользким. На самом деле просмотр этого файла довольно проблематичен, я могу просматривать оглавление, но ни на одной из страниц больше не отображается текст.
Один обходной путь, который я нашел, заключался в декомпиляции файла с помощью утилиты HTML Workshop. Это создало файл с именем f3evtError.htm, он выглядит так (отредактировано для содержания):
Событие ошибки
Происходит, когда элемент управления обнаруживает ошибку и не может вернуть информацию об ошибке вызывающей программе.
Синтаксис
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)
Синтаксис события Error состоит из следующих частей:
- объект: Требуется. Допустимое имя объекта.
- индекс: требуется. Индекс страницы в MultiPage, связанный с этим событием.
- Номер: Требуется. Задает уникальное значение, которое элемент управления использует для идентификации ошибки.
- Описание: Требуется. Текстовое описание ошибки.
- SCode: требуется. Указывает код состояния OLE для ошибки. Младшие 16 бит задают значение, идентичное аргументу Number.
- Источник: Обязательно. Строка, идентифицирующая элемент управления, инициировавший событие.
- Файл справки: требуется. Задает полное имя пути к файлу справки, описывающему ошибку.
- Контекст справки: требуется. Задает идентификатор контекста раздела файла справки, содержащего описание ошибки.
- Отмена отображения: требуется. Указывает, отображать ли строку ошибки в окне сообщения.
Примечания
Код, написанный для события Error, определяет, как элемент управления реагирует на состояние ошибки.
Способность обрабатывать условия ошибок варьируется от одного приложения к другому. Событие Error инициируется, когда возникает ошибка, которую приложение не может обработать.
Вот и все, к сожалению. Это расплывчато, потому что компонент может использоваться во многих различных типах хостов ActiveX, а перехват ошибок является деталью реализации хоста. Я думаю, что последний абзац - это то, о чем вы действительно спрашиваете. Я бы сказал, что можно с уверенностью предположить, что, поскольку в документации Office это не упоминается, приложения Office на самом деле не вызывают это событие. Тот факт, что событие по-прежнему отображается в редакторе VBA, является лишь побочным эффектом работы объектной модели. У редактора нет простого способа отфильтровать его, он просто отображает все опубликованные события объекта.
person
Hans Passant
schedule
06.08.2013