Visio에서 OLE 자동화를 사용하는 방법

기술 자료 번역 기술 자료 번역
기술 자료: 309603 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

이 페이지에서

소개

이 문서에서는 Microsoft Office 프로그램에서 다른 Microsoft Office Visio2from 자동화하는 Microsoft Visual Basic 또는 Visual Basic에 대해 VBA 사용 방법에 대한 정보가 들어 있습니다.

Microsoft는 묵시적인 보증 없이 목적으로만 프로그래밍 예제를 제공합니다. 이 포함되지만, 상품성 또는 특정 목적에의 적합성에 대한 묵시적인된 보증이 제한되지 않습니다. 이 문서에서는 만들려면 및 프로시저를 디버깅하는 데 사용되는 도구 및 여기서 설명하는 프로그래밍 언어에 익숙한 사용자를 대상으로 합니다. Microsoft 지원 엔지니어는 사용자에게 도움이 되도록 특정 절차에 대한 기능을 설명할 수 있지만 추가 기능을 제공하거나 특정 요구 사항에 맞도록 프로시저를 구성하지는 이 예제를 수정하지 않습니다.

자동화 개요

Visual Basic 에서 자동화 (OLE 자동화) 한 프로그램에서 다른 제어하는 프로세스입니다 프로그램 또는 외부 개발 도구입니다. VBA 개체 모델에 포함된 모든 프로그램을 자동화할 수 있습니다. 개체 모델은 프로그램의 사용할 수 있는 개체를 또는 노출된 Visual Basic 계층적 모음입니다.

예를 들어, Microsoft Visio 개체 모델에 다음과 같은 개체가 들어:
  • 응용 프로그램/전역 개체
  • 문서 개체
  • Page 개체
  • 마스터 개체
  • 개체 선택
  • 도형 개체
  • 창 개체
이러한 개체는 각각 고유한 Visual Basic에서 작업할 필요가 있는 메서드 및 속성 집합이 있습니다. 예를 들어, Shape 개체의 포인터를 사용하여 선택할 수 있는 Visio 드로잉 페이지의 모든 개체를 나타낼 수 있습니다. 따라서 Shape 개체를 수 셰이프, 그룹, 안내선, 컨트롤, 또는 연결된 다른 프로그램의 개체에 포함되거나 Visio 드로잉으로 가져온.

시작

이 문서의 코드 샘플은 Visio Microsoft Office 2007, Microsoft Office 2003, Microsoft Office 2002, Microsoft Visual Basic 6.0 또는 Visual Basic 개발 도구가 포함되어 있는 프로그램을 제어하는 방법을 보여 줍니다. Visio 자동화하기 위해 네 가지 기본 단계를 수행하십시오.
  1. Visio 형식 라이브러리에 대한 참조를 추가하십시오.
  2. Visio 개체 형식 변수를 선언하고 (일반적으로 Visio.Application 또는 Visio.Documents).
  3. GetObject 또는 CreateObject 메서드는 2단계에서 선언된 개체 변수에 할당하십시오.
  4. Visio 개체 속성, 메서드 및 자식 개체를 Visio 자동화할 수 있습니다.

1단계: Visio 형식 라이브러리에 대한 참조를 추가합니다

Microsoft Office XP 또는 Office 2003 같은 Microsoft Office 응용 프로그램을 사용하여 Visio 형식 라이브러리에 대한 참조를 추가하려면 다음과 같이 하십시오.
  1. 액세스, PowerPoint, Excel 또는 Word, 도구 메뉴에서 매크로 를 가리킨 다음 Visual Basic Editor 를 클릭하십시오.
  2. 도구 메뉴에서 참조 를 누릅니다.

    참고 Microsoft Visual Basic 6.0 사용하여 참조를 추가하려면 프로젝트 메뉴에서 참조 를 누릅니다.
  3. 사용 가능한 참조 목록에서 사용 중인 Visio 버전에 따라 다음 확인란 상자 중 하나를 선택하십시오.
    • Visio 2007 Microsoft Visio 12.0 형식 라이브러리에 확인란을 선택합니다.
    • Visio 2003의 Microsoft Visio 11.0 형식 라이브러리에 확인란을 선택합니다.
    • Visio 2002 Microsoft Visio 2002 형식 라이브러리에 확인란을 선택합니다.
Microsoft Visio 형식 라이브러리에 참조를 추가할 때 프로그램의 Visio Microsoft 온라인 도움말 및 Visio 개체 모델에 액세스할 수 있습니다. 각 프로젝트에서 참조가 저장되기 때문에 Visio를 자동화하는 데 사용할 각 Visual Basic 또는 VBA를 프로젝트의 Visio 형식 라이브러리에 참조를 추가해야 합니다.

2단계: 개체 변수 선언

Visio 개체 변수, 차원 Visio.Application, Visio.Documents, Visio.Page 등의 특정 Visio 개체 형식으로 변수를 선언할 수 있습니다.

컨트롤러 응용 프로그램을 연결하는 때문에 개체 형식을 초기 바인딩 이라고 명시적으로 선언하거나 바인딩합니다 런타임 아니라 컴파일 타임에 Visio 응용 프로그램에 대한 개체. 이 Visio 자동 목록 및 상황에 맞는 도움말을 액세스할 수 있으며 코드를 보다 효율적으로 실행할 수 있습니다.

개체 바인딩에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
138138런타임에, ID, 초기 바인딩 가능한 VB에서에 대한 응용 프로그램 형식
다음 샘플에서는 Visual Basic 인수 Visio.Application 형식의 개체로 AppVisio 변수를 선언합니다.

   Dim AppVisio as Visio.Application
				

단계 3: 변수 설정

다음 두 가지 Visual Basic 방법 Visio 활성화할 수 있습니다.
  • CreateObject
  • GetObject
주요 차이점은 CreateObject 메서드를 Visio, 새 인스턴스를 만들고 Visio 인스턴스가 이미 실행되고 GetObject 메서드를 사용하는 것입니다. GetObject 개체 변수를 특정 Visio 문서를 설정할 수도 있습니다.

다음 샘플에서는 인수를 해당 CreateObject 사용하여 Visio 응용 AppVisio 변수를 설정하는 함수:
   Dim AppVisio as Visio.Application

   Set AppVisio = CreateObject("Visio.Application")
				
인 경우에 따라 Visio 이미 실행 중인 Visio 실행되고 있지 않으면 새 인스턴스를 만들 경우 기존 Visio 인스턴스에 사용할 수도 있습니다. 이렇게 하려면 GetObject 메서드가 실패할 경우 해당, 이 샘플 코드에 나타난 것처럼 CreateObject 메서드를 사용하여 오류 처리기를 만드는:
   Dim AppVisio As Visio.Application

   On Error Resume Next

   Set AppVisio = GetObject(, "visio.application")

   If AppVisio Is Nothing Then
      Set AppVisio = CreateObject("visio.application")
   End If

				
노트 Visio 만들려면 CreateObject 함수를 사용할 수도 있습니다 즉 인스턴스 보이지 않는. 예를 들어,:
Set AppVisio = CreateObject("Visio.InvisibleApp")
				
인스턴스가 표시되는지 여부를 다음 컨트롤로 Application 개체의 Visible 속성을 사용할 수 있습니다.

InvisibleApp 개체 CreateObject 함수만 사용할 수 있습니다. 함수가 실패합니다 GetObject 사용하려고 시도합니다. InvisibleApp 사용할 수 있는 Microsoft Visio 2000 이전 버전의 개체가 없습니다.

4단계: Visio 개체, 메서드 및 속성 사용

1-3 단계를 완료한 후에는 Visio 사용할 Visio 자동화 개체 변수를.

다음 예제 매크로는 자동화를 사용하여 Visio를 시작할 기본 다이어그램 템플릿을 기반으로 새 드로잉 (문서) 만들기, 사각형을 떨어질, 일부 텍스트를 추가한 및 드로잉을 저장합니다 및 Visio 종료됩니다.
Sub AutoVisio()

   
   Dim AppVisio As Visio.Application  ' Declare an Instance of Visio.
   Dim docsObj As Visio.Documents     ' Documents collection of instance.
   Dim DocObj As Visio.Document       ' Document to work in.
   Dim stnObj As Visio.Document       ' Stencil that contains master.
   Dim mastObj As Visio.Master        ' Master to drop.
   Dim pagsObj As Visio.Pages         ' Pages collection of document.
   Dim pagObj As Visio.Page           ' Page to work in.
   Dim shpObj As Visio.Shape          ' Instance of master on page.

   ' Create an instance of Visio and create a document based on the
   ' Basic Diagram template. It doesn't matter if an instance of
   ' Visio is already running, CreateObject will run a new one.
   Set AppVisio = CreateObject("visio.application")

   Set docsObj = AppVisio.Documents

   ' Create a document based on the Basic Diagram template that
   ' automatically opens the Basic Shapes stencil.
   Set DocObj = docsObj.Add("Basic Diagram.vst")

   Set pagsObj = AppVisio.ActiveDocument.Pages

   ' A new document always has at least one page, whose index in the
   ' Pages collection is 1.
   Set pagObj = pagsObj.Item(1)

   Set stnObj = AppVisio.Documents("Basic Shapes.vss")
   Set mastObj = stnObj.Masters("Rectangle")

   ' Drop the rectangle in the approximate middle of the page.
   ' Coordinates passed with the Drop method are always inches.
   Set shpObj = pagObj.Drop(mastObj, 4.25, 5.5)

   ' Set the text of the rectangle.
   shpObj.Text = "This is some text."

   ' Save the drawing and quit Visio. The message pauses the program
   ' so you can see the Visio drawing before the instance closes.
   DocObj.SaveAs "MyDrawing.vsd"
   MsgBox "Drawing finished!", , "AutoVisio (OLE) Example"

   ' Quit Visio.
   AppVisio.Quit

   ' Clear the variable from memory.
   Set AppVisio = Nothing

End Sub
				

참조

Microsoft Visio 개발자 웹 사이트

Visio를 자동화하는 방법에 대한 자세한 내용은 다음 Microsoft 웹 사이트를 방문하십시오.
http://msdn2.microsoft.com/en-us/office/aa905478.aspx
Microsoft Visio 개발하는 방법에 대한 자세한 내용은 솔루션, 다음 Microsoft 웹 사이트를 방문하십시오.
http://msdn2.microsoft.com/en-us/library/aa217846(office.10).aspx

Visio 소프트웨어 개발 키트

Visio 2002 소프트웨어 개발 키트를 다운로드하려면 다음 Microsoft 웹 사이트를 방문하십시오.
http://www.microsoft.com/downloads/details.aspx?familyid=d2845e80-6634-4703-9ad9-7e440ede12d7&displaylang=en

Visio 2003 소프트웨어 개발 키트를 다운로드하려면 다음 Microsoft 웹 사이트를 방문하십시오.
http://www.microsoft.com/downloads/details.aspx?familyid=557120bd-b0bb-46e7-936a-b8539898d44d&displaylang=en

뉴스 그룹

다음과 같은 피어-투-피어 뉴스 응용 프로그램에 대해 VBA 다른 사용자와 상호 작용할 수 있도록 사용할 수 있습니다.
microsoft.public.vb.ole.automation
microsoft.public.visio.developer.vba

Visual Basic 도움말

Visual Basic 편집기에서 CreateObject 함수를 사용하는 방법에 대한 자세한 내용은 Microsoft Visual Basic 도움말도움말 메뉴에서 createobject 함수검색 상자에 입력합니다 클릭한 다음 반환된 항목을 보려면 검색 누릅니다.

Visual Basic 편집기에서 GetObject 함수를 사용하는 방법에 대한 자세한 내용은 Microsoft Visual Basic 도움말도움말 메뉴에서 getobject 함수검색 상자에 입력합니다 클릭한 다음 반환된 항목을 보려면 검색 누릅니다.

속성

기술 자료: 309603 - 마지막 검토: 2007년 4월 11일 수요일 - 수정: 4.1
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Office Visio Standard 2007
  • Microsoft Office Visio Professional 2007
  • Microsoft Office Visio Standard 2003
  • Microsoft Office Visio Professional 2003
  • Microsoft Visio 2002 Standard Edition
  • Microsoft Visio 2002 Professional Edition
키워드:?
kbmt kbautomation kbprogramming kbvba kbhowto KB309603 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com