Кажется, что не хватает ясности относительно того, где использовать какие термины / имена / идентификаторы ...
Я предполагаю, что имя модуля класса EventClassModule
. В довершение всего есть объявление
Public WithEvents appWord As Word.Application
В обычном модуле не используйте имя события (DocumentBeforeClose), используйте только имя модуля класса для объявления в верхней части обычного модуля. Plus , назначьте другое, другое имя для идентификации класса в этом модуле. Например
Dim MyEvents As New EventClassModule
Затем, чтобы запустить перехват обработчика событий:
Sub Register_Event_Handler()
Set MyEvents.appWord = Word.Application
End Sub
appWord_DocumentBeforeClose
сработает автоматически при попытке закрыть документ. Если бы вы добавили событие Open или New, они бы также автоматически запускались, пока активен обработчик события.
Для того чтобы обработчик событий автоматически запускался при открытии документа, можно вызвать процедуру регистрации из макроса с именем AutoOpen
. Например
Sub AutoOpen()
Register_Event_Handler
End Sub