Речь идёт о номерах ошибок в объектах. В MSDN есть пример для оператора On Error:
https://learn.microsoft.com/ru-ru/office/vba/language/reference/user-interface-help/on-error-statement
Этот пример не работает. При попытке его исправить, обнаружил, что к константе vbObjectError необходимо добавлять 44.
- Код: Выделить всё
- Sub OnErrorStatementDemo()
 On Error GoTo ErrorHandler ' Включаем обработчик ошибок.
 
 Dim Msg As String
 Dim ObjectRef As Object
 
 Open "TESTFILE" For Output As #1 ' Открываем файл для записи.
 Kill "TESTFILE" ' Пытаемся удалить открытый фалй.
 On Error GoTo 0 ' Выключаем обработчик ошибок.
 On Error Resume Next ' Включаем новый обработчик ошибок.
 ' Пытаемся запустить несуществующий
 Set ObjectRef = GetObject("MyWord.Basic") ' объект, а потом
 Select Case Err.Number ' проверяем наличие ошибки.
 
 ' Здесь мне пришлось добавить 44 к константе
 ' vbObjectError. Без этого номер ошибки не соответствует её описанию.
 Case vbObjectError + 44 + 432
 Msg = "432. Не найдено имя файла или класса "
 Case vbObjectError + 44 + 440
 Msg = "440. Ошибка программирования объектов "
 Case Else
 Msg = Err – vbObjectError - 44 & ". Произошла ошибка "
 Msg = Msg & Err.Description
 End Select
 ' Выдаём сообщение об ошибке
 Msg = Msg & "при попытке открыть объект Automation!"
 MsgBox Msg, vbExclamation + vbMsgBoxHelpButton, _
 "Тестирование обработчика ошибок", _
 Err.HelpFile, Err.HelpContext
 Err.Clear ' Очищаем свойства объекта Err
 
 Set ObjectRef = Nothing
 Exit Sub ' ВЫХОД ИЗ ПРОЦЕДУРЫ.
 
 ErrorHandler: ' ОБРАБОТЧИК ОШИБОК.
 Select Case Err.Number ' Проверяем номер ошибки.
 Case 55 ' Если "Файл уже открыт",
 Close #1 ' то закрываем файл.
 Case Else
 ' Здесь обрабатываем все прочие ситуации
 End Select
 Resume ' Возобновляем выполнение с места,
 ' где произошла ошибка.
 End Sub


