Wie gebe ich den Namen des Benutzerformular-Steuerelements zurück, das das Mouseover-Klassenereignis ausgelöst hat?Excel VBA Welches UserForm-Steuerelement löste gemeinsam genutztes MouseOver-Klassenereignis aus?
Das klingt so einfach, aber ehrlich gesagt habe ich mein Gehirn wurde Abstich versuchen, die richtige Syntax zu finden ...
Hier ist mein Userform-Modul:
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
ich drei Bild Steuerelemente dynamisch erstellen zu Laufzeit mit dem treffenden Namen "1", "2" und "3".
I zuweisen jeweils ein Mouseover-Ereignissteuerung in der folgenden Klasse-Modul gefunden „Class1“ genannt:
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
Wie kann ich die MsgBox machen den Namen der Steuerung enthalten, die das Ereignis ausgelöst hat?
Me.dImages.Name 'x
ActiveControl.Name 'x
Screen.ActiveControl.Name 'x
UserForm1.ActiveControl.Name 'x
Jede Hilfe wird geschätzt.
Danke,
Herr J
Ich wusste, es wäre einfach! Ich war mir sicher, dass ich das versucht habe ... Danke für deinen Tipp über das unmittelbare Fenster, ich muss es öfter benutzen. –