mouseoverクラスイベントをトリガしたuserformコントロールの名前を返すにはどうすればよいですか?Excel VBAどのUserFormコントロールが共有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
私は動的に3つの画像コントロールを作成実行時には「1」、「2」、「3」という名前が付いています。
私は、それぞれが「クラス1」と呼ばれる次のクラスモジュールで見つかったmouseoverイベントを制御割り当てる:
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
は、どのように私はメッセージボックスがイベントをトリガしたコントロールの名前が含まれていることができますか?
Me.dImages.Name 'x
ActiveControl.Name 'x
Screen.ActiveControl.Name 'x
UserForm1.ActiveControl.Name 'x
助けていただければ幸いです。
おかげで、
氏はJ
私はそれが簡単だろうと知っていた!私はこれを試していたと確信していた...直接の窓についてのあなたのヒントをありがとう、私はこれをより頻繁に使用する必要があります。 –