QueryCancel로 시작하는 이벤트를 사용하면 흐름을 중단시킬 수 있습니다. 오히려,
Private Function Document_QueryCancelSelectionDelete(ByVal Selection As IVSelection) As Boolean
Dim queryResult As Boolean
Dim shp As Shape
Set shp = Selection.PrimaryItem
If Not shp Is Nothing Then
If Not shp.Master Is Nothing Then
If shp.Master.NameU = "Process" Then
Dim res As VbMsgBoxResult
res = MsgBox("Are you sure you want to delete '" & shp.NameID & "'?", vbYesNo, "Delete Process shape?")
If Not res = vbYes Then
queryResult = True
End If
End If
End If
End If
'Return True to cancel the event
'Return False to let it continue
Document_QueryCancelSelectionDelete = queryResult
End Function
당신은 항상 선택을 처리 할 겁니다 : 그래서, 예를 들어,의 ThisDocument이를 추가하면 그 PrimaryItem는 '프로세스'마스터에서 파생 된 여부에 따라 선택을 삭제하지 할 수 있도록 것입니다 Shape 삭제 이벤트보다 더 많은 이벤트가 발생하지만, 선택을 반복하고 관심있는 모양인지 쉽게 확인할 수 있습니다. 귀하의 필요에 따라 Application, Document (위와 같음) 또는 Page level에서 청취가 가능합니다.
'Application.EnableEvents = False'가 대답이됩니까? – Vityata
좋지 않은 생각이 아니라면 이벤트가 꺼지면 다시 켜는 방법이 될 것입니다. – jediderek
응용 프로그램을 켜려면'Application.EnableEvents = True'가 필요합니다. – Vityata