У меня есть Class1 в VBA-Excel с переменной-именем и динамически создаваемая кнопка, которая является экземпляром другого класса (cButton).Я хочу сослаться на экземпляр Class1 в событии click кнопки, но не могу заставить его работать.Минимальный рабочий пример:
Class1
Option Explicit
Dim myButton As cButton
Public ClassName As String
Sub createButton()
Set myButton = New cButton
Set myButton.ButtonObject = UserForm1.Controls.Add("Forms.CommandButton.1", "btn", True)
myButton.ButtonName = "NiceButton"
End Sub
Class cButton
Option Explicit
Public WithEvents ButtonObject As MSForms.CommandButton
Public ButtonName As String
Private Sub ButtonObject_Click()
MsgBox ("This Button is called " & Me.ButtonName)
'MsgBox ("This Button belongs to " & Me.Me.ClassName) 'Compile Error: Method or Data Member not found
End Sub
Я создаю экземпляр и нажимаю кнопку в пользовательской форме1:
Option Explicit
Dim myClass As Class1
Private Sub UserForm_Initialize()
Set myClass = New Class1
myClass.ClassName = "NiceClass"
myClass.createButton
End Sub
Когда я нажимаю кнопку, она правильно отображает имя кнопки (через Me.Name в ButtonObject_Click), но мне не удалось сослаться на базовый экземпляр класса, чтобы отобразить имя класса.(Я знаю, Me.Me.ClassName был немного наивным, но я нигде не мог найти решение).Как я могу сослаться на экземпляр класса Class1 (myClass), которому принадлежит кнопка?
Заранее благодарим за помощь.