雙擊 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

此例程將導致形狀在功能上忽略第一次單擊,僅在指定時間範圍內第二次單擊時執行所需的程式碼。