2017-11-24 3 views
2

삽입 된 이미지를 두 번 클릭하면 Excel vba 함수를 트리거하는 방법은 무엇입니까? 현재이 기능은 Private Sub Workbook_AfterSave(ByVal Success As Boolean)에 의해 트리거됩니다.VBA - 삽입 된 이미지를 두 번 클릭 할 때 함수를 실행하는 방법

셀을 클릭하거나 하이퍼 링크를 클릭했을 때만 예제를 찾을 수 있지만 이미지를 두 번 클릭하면 예제를 찾을 수 없습니다.

+0

하나가 아닌 두 번 클릭해야합니까? – ashleedawg

+0

예, 더블 클릭하십시오. 싱글 클릭으로 우연히 셀을 클릭하면 기능이 실행됩니다. 함수를로드하는 데 시간이 필요합니다. – Max

+0

더블 클릭을 탐지해야하는 이미지가 하나뿐입니까? 다른 사진에 대해 다른 작업이 있습니까? – ashleedawg

답변

2

Excel 이미지에는 액세스와 같은 두 번 클릭 이벤트가 없습니다. 워크 시트 Worksheet_BeforeDoubleClick 있습니다

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 
    MsgBox ("Application.Caller: " & IIf(IsError(Application.Caller), Err.Description, _ 
     Application.Caller) & vbLf & "Target.Address: " & _ 
     IIf(IsError(Target.Address), Err.Description, Target.Address)) 
End Sub 

내가 두 번 클릭 한 이미지 인 경우 확인하는 방법을 잘 모르겠어요 -이 선택되어 셀이 아니라면 Application.Caller가 오류를 반환합니다.

뒤에 뒤에 배경 이미지로 셀을 넣고 위에있는 셀을 두 번 클릭하면됩니다.

.

또는 마지막으로 클릭 한 이후 이미지의 할당 된 매크로 확인 시간을 확인할 수 있다고 가정합니다. 이미지가 400ms 일 이내에 두 번 클릭하면이 예제는 MsgBox 표시됩니다 :

Public clickedPic As String 
Public lastTimer As Single 

Sub Picture2_Click() 
    clickedPic = Application.Caller 
    If (Timer - lastTimer) < 0.5 Then 
     MsgBox "doubleclick" 
     er 
    End If 
    lastTimer = Timer 
Debug.Print clickedPic, Now() 
End Sub 
1

당신은 클릭 이벤트 후 절차를 활성화 형태로의 OnAction 속성을 할당 할 수 있습니다.

코드 예제는 물론 추가 사각형

과 기존 모양을 위해 쉽게 수정할 수 있습니다.

Sub AddRectangle() 
Dim oSht As Worksheet 
Dim oShape As Shape 
Set oSht = ThisWorkbook.Worksheets("MySheet") 
' only if you want to add a new shape, otherwise refer to Name or item no 
    Set oShape = oSht.Shapes.AddShape(msoShapeRectangle, 100, 100, 50, 50) 
    oShape.Name = "MyRectangle" 
' OnAction property assignes the specified procedure (e.g. "MyProcedure") to the shape object. 
    oSht.Shapes("MyRectangle").OnAction = "MyProcedure" 
End Sub 

Sub MyProcedure() 
MsgBox "Shape MyRectangle has been clicked." 
End Sub 
+0

재미있는 해결책은 표결이지만 더블 클릭이 아니라 한 번의 클릭입니다. – ashleedawg

+0

은 힌트에 감사하지만 OP에 대한 의견을 참조하십시오. –

관련 문제