2016-10-31 9 views
1

안녕하세요 저는 visio에서 VBA를 처음 사용하고 Visio 템플릿에 기능을 추가하려고합니다. 특정 도형을 떨어 뜨릴 때마다 활성 문서에 페이지가 추가됩니다. 페이지에. MSDN을 살펴본 후 Application.ShapeAdded 함수를 사용하여 예제를 찾았지만 현재 작업중인 활성 문서가 수정 된 코드에 응답하지 않는 것 같습니다.모양 드롭에 visio에 도형/페이지 추가하기

개인 서브 Document_ShapeAdded (Visio.IVShape으로 ByVal의 vsoShape)

Dim vsoMaster As Visio.Master 
'Get the Master property of the shape. 
Set vsoMaster = vsoShape.Master 
'If Visio shape added is named "SC" add a new page 

If vsoMaster.Name = "SC" Then 
    NewPage 
End If 

최종

가 나는 모양 마스터의 이름이 확인 모양 마스터 "SC"를 드롭 서브, 아무것도 일어난다. MSDN verbage는 Application.ShapeAdded를 열린 응용 프로그램에 대한 이벤트 수신기로 설명합니다. 나는 뭔가를 놓치고 있는가, 아니면 이것을 할 수있는 더 좋은 방법이 있을까? 나는 생각하지 않는다. https://msdn.microsoft.com/en-us/library/office/ff766392.aspx

답변

0

Document_ShapeAdded 이벤트는 VBA 코드가 위치한 문서에 적용됩니다

다음은 MSDN의 설명이다.

응용 프로그램 개체를 선언하고 해당 이벤트를 감시해야합니다.

예 (개체 또는의 ThisDocument 모듈) : 그것은 간단한 일이 있다면

Private WithEvents App as Visio.Application 
Private Sub App_ShapeAdded(ByVal Shape As IVShape) 
    Call ActiveDocument.Pages.Add() ' etc.. 
End Sub 

또는, 당신은 단지에 VBA 루틴을 발사 문제의 마스터 모양에 셰이프 CALLTHIS 기능을 추가 할 수 있습니다 새 페이지를 추가하십시오.

+0

모양 시트의 이벤트 섹션에서 CALLTHIS로 작업하게 할 수있었습니다. 감사! 이것은 매우 도움이되었습니다. –

+0

위대한, 그것은 당신을 위해 일한 답 인 것 같습니다. 그래서 제 대답이 옳은 것으로 받아 들일 것으로 기대됩니다. 감사. –