У меня есть xlam, который работает при открытии и закрытии книги.
Для этого я создал модуль класса со следующим кодом:
''''''''''''''''''''''' Setup Event '''''''''''''''''''''''''''''''''''''''''''''''''
Public WithEvents appevent As Application
''''''''''''''''''''''' Setup Application at Close''''''''''''''''''''''''''''''''''''''''''''
Private Sub appevent_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As Boolean)
MsgBox("The workbook " & Wb.Name & " will close now")
End Sub
''''''''''''''''''''''' Setup Application at Open''''''''''''''''''''''''''''''''''''''''''''
Private Sub appevent_WorkbookOpen(ByVal Wb As Workbook)
MsgBox("The workbook " & Wb.Name & " is now open")
End Sub
Затем в объекте «ThisWorkbook» у меня есть этот код:
Dim myobject As New Class1
Sub Workbook_Open()
Set myobject.appevent = Application
End Sub
После установки надстройки, когда файл открывается, появляются два сообщения: одно при запуске Excel, затем одно при открытии файла, аналогично дело о закрытии.
Почему это происходит и как этого избежать?