Обработчик _Initialize
вызывается при создании экземпляра класса / формы. Если вы показываете форму, как это:
UserForm1.Show
Тогда может работать как положено, если это единственное, что вы когда-либо делаете с формой. Проблема в том, что это экземпляр формы по умолчанию , и вы не совсем контролируете , когда VBA собирается инициализировать этот глобальный экземпляр.
Взять под контроль.
With New UserForm1 'initializes a new instance of the class
.Show
End With
Теперь обработчик _Initialize
систематически запускается каждый раз, потому что это экземпляр New
каждый раз. См. Мою UserForm1.Show статью о других подводных камнях при использовании форм по умолчанию.