Я работаю в Excel 2010, и я, похоже, получаю странное, довольно неожиданное поведение, работающее с настраиваемыми событиями.
Я уверен, что на 99% этот подход сработал у меня несколько лет назад (может быть, это было в Excel 03/07 - не помню) или, возможно, я просто что-то испортил...
Здесь воспроизводится:
Добавьте новый модуль класса и назовите его Factory
Public Event AfterInitialize()
Private Sub Class_Initialize()
    RaiseEvent AfterInitialize
End Sub
Добавьте еще один модуль класса и имя FactoryTest
Private WithEvents cFactory As Factory
Private Sub Class_Initialize()
    Set cFactory = New Factory
End Sub
Private Sub cFactory_AfterInitialize()
    Debug.Print "after inialized..."
End Sub
и стандартного Module1 и выполните ниже
Sub Main()
    Dim fTest As FactoryTest
    Set fTest = New FactoryTest
End Sub
В этот момент я ожидал увидеть after initialized.. в окне Immediate, но я не...
Выполняя код, кажется, что Private Sub cFactory_AfterInitialize() никогда не достигается...
Примечание:
Я могу добавить открытый sub: RaiseAfterInitialize() в класс Factory, а затем вызывать это явно в событии Initialize() в FactoryTest как cFactory.RaiseAfterInitialize(), так что это может быть возможной работой, но что я я действительно пытаюсь понять, почему это не работает, оригинальный способ показал выше?
Может ли кто-нибудь указать, что я делаю неправильно?
