2010-02-14 4 views
0

의 모양을 참조하십시오? ActivePage.addShape(type: person, 100,100, 50,50)는 어떻게 정상적인 인터페이스를 통해 선택할 수있는 Microsoft Visio에 특정 모양을 만들 않는 방법의 Visio VBA

과 같은 코드를 찾고 있습니다. msdn 및 visio 도움말 설명서는 초보자 용으로 약간 고급 기능을 제공하지만 수동으로 모양을 추가 한 다음 vba를 통해 ID를 제공해야하는 경우가 있습니다. 이해하고 다시 사용하십시오. 또는 전역 서브/클래스를 작성한 다음 이름을 부여한 오브젝트를 참조해야합니다.

+0

당신은 내가 얼마 전에이 질문을 알고 있지만 나는 다른 사람이 내가이 솔루션을하려고 주위를 확보하지 못했 것을 시도로 인정 oblidged 느낌의 Visio – denfromufa

답변

2

는 당신이 필요로하는 기능은 드롭라고합니다. 첫 번째 인수는 다른 셰이프, 현재 선택한 셰이프 또는 Visio 스텐실의 Master 개체에 대한 참조가 될 수있는 dropObject입니다. 그것이 어떻게 작동하는지

당신은 볼이 밖으로 시도 할 수 있습니다

Dim ShpObj As Visio.Shape 
Set ShpObj = ActivePage.Drop(ActiveWindow.Selection, 100, 50) 

그래서, ActiveWindow.Selection를 사용하여 Visio에서 선택한 모양을 복제하고 100에 넣어 의미,

(50)이 얻을 수있는 마스터, 먼저 마스터를 보유하고있는 스텐실 문서를 찾아야합니다. 다음은 그 예 기본 도형 블록 다이어그램 스텐실에서 삼각형 모양을 가하고,이다 :

Dim ShpObj As Visio.Shape 
Set ShpObj = ActivePage.Drop(Application.Documents("BASIC_U.VSS").Masters("Triangle")) 

ShpObj 당신이 나중에 코드에서 참조 할 수 있습니다 의미 드롭 기능의 결과를 설정. 그렇지 않으면 페이지의 모든 모양을 포함하는 Page 클래스의 Shapes 컬렉션이 있습니다.

는 희망 그 Visio를 VBA 프로그래밍에 당신을 위해 좋은 시작을 할 수 있습니다.

+0

에서 VBA 매크로를 기록 할 수 있습니다. – dbjohn