mouseover 클래스 이벤트를 트리거 한 userform 컨트롤의 이름을 어떻게 반환합니까?Excel VBA 어떤 UserForm 컨트롤이 Shared MouseOver 클래스 이벤트를 트리거 했습니까?
이 너무 간단 소리를하지만 솔직히 내가 올바른 구문을 찾기 위해 노력하고 내 머리를 ... 건 드리는 봤는데 여기
내 사용자 정의 폼 모듈입니다 : 나는 동적에서 세 개의 이미지 컨트롤을 만들Option Explicit
Dim dArray() As New Class1
Sub Build_Controls()
Dim dImage As Object, i As Integer
For i = 1 To 3
Set dImage = UserForm1.Controls.Add("Forms.Image.1", i, True)
With dImage
.Left = (25 * i) + 20
.Width = 20
.Top = 10
.Height = 20
End With
ReDim Preserve dArray(1 To i)
Set dArray(i).dImages = dImage
Next i
End Sub
Private Sub UserForm_Activate()
Build_Controls
End Sub
런타임에는 적절하게 "1", "2"및 "3"이라는 이름이 지정됩니다.
Public WithEvents dImages As MSForms.Image
Private Sub dImages_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
MsgBox ("Control Name") 'Which control was triggered?
End Sub
가 어떻게이있는 MsgBox가 이벤트를 트리거 컨트롤의 이름을 포함 할 수 있습니다 :
I는 각각 "클래스 1"이라는 다음 클래스 모듈에서 발견 mouseover 이벤트를 제어 지정?
Me.dImages.Name 'x
ActiveControl.Name 'x
Screen.ActiveControl.Name 'x
UserForm1.ActiveControl.Name 'x
도움을 주시면 감사하겠습니다.
감사합니다,
씨 J
나는 그것이 간단하다는 것을 알고있었습니다! 나는 이것을 시도했는지 확신했다. 즉각적인 윈도우에 대한 팁을 주셔서 감사합니다. –