VBA의 ActiveX 버튼에 대해 별도로 클릭 한 번 및 두 번 클릭 이벤트를 처리하고 싶습니다. 내 문제는 싱글 클릭 이벤트가 싱글 클릭과 더블 클릭 모두에 대해 호출된다는 것입니다. 두 번 클릭 이벤트가 발생할 때 단일 클릭 절차를 무시하거나 우회하는 방법이 있습니까? 나는VBA의 activeX 버튼에서 한 번의 클릭 및 두 번 클릭 이벤트 처리
답변
... 도움말에서
코드는 클릭 이벤트가있는 경우의 DblClick 이벤트 것이다 결코 트리거가 이것에 대한 간단한 대답은,하지만 웹에서 아무것도 찾을 수 없습니다 확신 왜냐하면 Click 이벤트는 둘 사이에서 트리거되는 첫 번째 이벤트이기 때문입니다. 따라서 마우스 클릭을 DblClick 이벤트가 발생하지 않도록 Click 이벤트에 의해 가로 챌 것입니다.
마우스를 아래로 잡아서 마우스를 올려보십시오. 마우스가 아래쪽으로 움직이지 않으면 500ms를 기다린 후 마우스를 길게 잡을 때까지 한 번 클릭하십시오.
DoubleClickSpeed HKCU \ 제어판 \ 마우스
데이터 형식 범위 기본값 REG_SZ 100-900 (십진수 밀리 초) 500
Brad Yundt이 this post에 전문가 - 거래소에서이 영리한 해결 방법을 제공합니다.
당신이
당신은 후 1 초 leftclick에 대한 응답을 예약 Application.OnTime를 사용하여 시도를 말할 수 엑셀은 PLS 내가 잘못 오전 알려 주시기이 WRT를 요청했습니다 가정 하였다 지연. 그 동안 doubleclick 또는 rightclick 이 발생하면 OnTime 하위 의 leftclick 이벤트가 발생하지 않습니다.
다음 코드는 감시중인 워크 시트의 코드 창에 표시됩니다. 탭 이름이 아니라 해당 워크 시트의 코드 이름을 사용합니다.
작성된 것처럼 코드는 단일 셀에서 leftclick, rightclick 또는 doubleclick에 대해 A1 : A10을 봅니다. 그런 다음 클릭 한 셀의 이름을 지정하는 메시지 상자와 클릭 유형을 표시합니다.
워크 시트 이벤트 코드 주석에 대한
Dim bTrapped As Boolean
Dim cel As Range, rgWatch As Range
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(cel, Target) Is Nothing Then
MsgBox "Doubleclick at " & cel.Address
bTrapped = True
Cancel = True
End If
End Sub
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(cel, Target) Is Nothing Then
MsgBox "Rightclick at " & cel.Address
bTrapped = True
Cancel = True
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim targ As Range
Set rgWatch = Range("A1:A10")
Set targ = Intersect(Target, rgWatch)
If Not targ Is Nothing Then
If targ.Cells.Count = 1 Then
bTrapped = False
Set cel = targ.Cells(1, 1)
'Allow 1 second for user to complete a rightclick or doubleclick before trapping leftclick
Application.OnTime Now + 1/86400, "Sheet1.DelayedWatch" 'Note that Sheet1 is codename for worksheet (not tabname)
End If
End If
End Sub
Private Sub DelayedWatch()
If bTrapped = False Then
MsgBox "Leftclick at " & cel.Address
End If
End Sub
- 1. pygtk의 두 번 클릭 이벤트 및 단일 클릭 이벤트 처리
- 2. 한 번의 클릭 이벤트로 요소에서 두 번 클릭 이벤트를 중지하십시오.
- 3. DataGrid의 두 번 클릭 이벤트
- 4. 두 번 클릭 이벤트
- 5. 버튼에서 클릭 이벤트 제거
- 6. Gridster로 클릭 이벤트 처리
- 7. 이벤트 발생을 클릭하고 두 번 클릭
- 8. 두 번 클릭 타이머 이벤트
- 9. jquery 문서 본문 한 번의 클릭 이벤트
- 10. 한 번의 클릭 뒤
- 11. 차별화 한 번의 클릭으로 안드로이드의 imageView 두 번 클릭
- 12. 한 번의 클릭 이벤트에서 jquery 다중 클릭 이벤트
- 13. Excel : 두 번 클릭 이벤트 트리거
- 14. SlickGrid 버튼에서 클릭 이벤트 받기
- 15. lwjgl 두 번 클릭 마우스 이벤트
- 16. jquery datatables 버튼에서 이벤트 클릭
- 17. 장고보기의 버튼에서 클릭 이벤트 받기
- 18. jQuery : 단일 버튼 클릭, 두 번 이상 클릭 이벤트 발생
- 19. 한 번 클릭으로 두 번 클릭 동작
- 20. phonegap에서 두 번 클릭 구현
- 21. 패널에서 Extjs 두 번 클릭 이벤트
- 22. C#의 모든 마우스 클릭 이벤트 처리
- 23. jquery : 두 번의 클릭 기능
- 24. 컨트롤 배열의 버튼에서 클릭 이벤트 받기
- 25. 내 클릭 두 번 클릭 이벤트 작동 만들기
- 26. GaugeControl 두 번 클릭 이벤트 처리기
- 27. 마우스 이벤트 지정 [DllImport ("user32.dll")] 클릭, 두 번 클릭
- 28. 클릭 한 버튼에서 포커스 제거
- 29. 한 번 클릭 배포 및 솔루션 구성
- 30. 두 번 클릭 트레이 아이콘 이벤트 캡처
감사 브렛. 불행히도 제 질문에 모호합니다 - 사과. 예, Excel을 사용하고 있습니다. 그러나 내 질문은 ActiveX 컨트롤보다는 셀 관련이 있습니다 - "SelectionChange"함수를 컨트롤을 작동합니다 얇게 지 않습니다. 어떤 대안이 있는지 아십니까? – fatgecko