双击 Excel 形状的事件

默认情况下,Excel 中的形状没有特定的方法来处理单击与双击,只包含 OnAction 属性以允许你处理点击。但是,在某些情况下,你的代码可能要求你在双击时采取不同(或排他)的行为。以下子例程可以添加到你的 VBA 项目中,当设置为你的形状的 OnAction 例程时,允许你按双击操作。

Public Const DOUBLECLICK_WAIT as Double = 0.25 'Modify to adjust click delay
Public LastClickObj As String, LastClickTime As Date

Sub ShapeDoubleClick()
    
    If LastClickObj = "" Then
        LastClickObj = Application.Caller
        LastClickTime = CDbl(Timer)
    Else
        If CDbl(Timer) - LastClickTime > DOUBLECLICK_WAIT Then
            LastClickObj = Application.Caller
            LastClickTime = CDbl(Timer)
        Else
            If LastClickObj = Application.Caller Then
                'Your desired Double Click code here
                LastClickObj = ""
            Else
                LastClickObj = Application.Caller
                LastClickTime = CDbl(Timer)
            End If
        End If
    End If
    
End Sub

此例程将导致形状在功能上忽略第一次单击,仅在指定时间范围内第二次单击时运行所需的代码。