通过鼠标单击获取图像的单词[Visual Basic]

时间:2016-01-12 23:52:00

标签: vba ms-word

我有一个基本用户表单,在多页框架内有100张图像(10x10), 所有图像在其位置(左上角00和右下角99)后重命名

所以我没有为每个图像制作imagexx_click()函数,而是想要一种方法来检测单击的图像(或对象)

尝试了什么;

我尝试使用MultiPage1_Click()进行检测,但只检测多页,如果用户点击其中的图像,则无法检测到

我尝试将eventhandler与应用程序一起使用,记录为here 但我对BeforeDoubleClick事件和SelectionChange事件

都没有好运

我甚至试图引用系统并实现鼠标点击事件

那么这个

的简单解决方案是什么

1 个答案:

答案 0 :(得分:1)

课程模块clsImg:

Option Explicit

Public WithEvents img As MSForms.Image

Private Sub img_Click()
    Debug.Print "single - " & img.Name
End Sub

Private Sub img_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    Debug.Print "double - " & img.Name
End Sub

您的表单模块:

Private col As New Collection

Private Sub UserForm_Activate()
    Dim o As clsImg, c As Object

    For Each c In Me.Controls
        If TypeName(c) = "Image" Then
            Set o = New clsImg
            Set o.img = c
            col.Add o
        End If
    Next c
End Sub