Word 개체 모델 개요
업데이트: 2008년 7월
적용 대상 |
---|
이 항목의 정보는 Microsoft Office의 지정된 Visual Studio Tools for Office 프로젝트 및 버전에만 적용됩니다. 프로젝트 형식
Microsoft Office 버전
자세한 내용은 응용 프로그램 및 프로젝트 형식에 따라 사용 가능한 기능을 참조하십시오. |
Microsoft Office Word용 Visual Studio Tools for Office 솔루션을 개발하려면 Word 개체 모델과 상호 작용합니다. 이 개체 모델은 Word의 주 interop 어셈블리에 제공되는 클래스와 인터페이스로 구성되며 Microsoft.Office.Interop.Word 네임스페이스에 정의됩니다.
이 항목에서는 Word 개체 모델 사용과 관련된 다음 사항을 설명합니다.
Word 개체 모델 이해
Visual Studio Tools for Office 프로젝트의 확장 개체
Word 개체 모델 설명서 사용
Word 개체 모델을 사용하여 Visual Studio Tools for Office 프로젝트에서 작업을 수행하는 방법에 대한 자세한 내용은 다음 항목을 참조하십시오.
Word 개체 모델 이해
Word에는 사용자가 상호 작용할 수 있는 다양한 개체가 있습니다. 이러한 개체는 사용자 인터페이스를 철저하게 따르는 계층 구조로 구성됩니다. 계층 구조의 맨 위에는 Application 개체가 있습니다. 이 개체는 Word의 현재 인스턴스를 나타냅니다. Application 개체는 Document, Selection, Bookmark 및 Range 개체를 포함합니다. 이러한 개체 각각에는 개체를 조작하고 개체와 상호 작용하는 데 액세스할 수 있는 여러 가지 메서드와 속성이 있습니다.
다음 그림에서는 Word 개체 모델의 계층 구조에 있는 이러한 개체의 한 가지 보기를 보여 줍니다.
Word 개체 모델 추상화
처음에는 겹치는 부분이 많은 것처럼 보일 수 있습니다. 예를 들어 Document 개체와 Selection 개체는 둘 다 Application 개체의 멤버이지만 Document 개체는 Selection 개체의 멤버이기도 합니다. Document 개체와 Selection 개체는 모두 Bookmark 개체와 Range 개체를 포함합니다. 동일한 형식의 개체에 액세스하는 방법은 여러 가지가 있으므로 중복이 존재합니다. 예를 들어 Range 개체에 서식을 적용하더라도 현재 선택 범위, 특정 단락, 단원 또는 문서 전체에 액세스할 수 있습니다.
다음 단원에서는 최상위 수준 개체에 대해 간략하게 설명하고 이러한 개체들이 상호 작용하는 방식에 대해서도 알아봅니다. 이러한 개체로는 다음 다섯 개가 있습니다.
Application 개체
Document 개체
Selection 개체
Range 개체
Bookmark 개체
Visual Studio Tools for Office에서는 이 중 많은 개체를 호스트 항목과 호스트 컨트롤로도 확장합니다. 이러한 확장 개체는 문서 수준 프로젝트에서 사용할 수 있으며 Visual Studio 2008 SP1(서비스 팩 1)부터는 Word 2007용 응용 프로그램 수준 프로젝트에서도 사용할 수 있습니다. 호스트 항목과 호스트 컨트롤에는 데이터 바인딩 및 이벤트와 같은 추가 기능이 있습니다. 호스트 컨트롤에 대한 자세한 내용은 Visual Studio Tools for Office 프로젝트의 확장 개체를 참조하십시오.
Application 개체
Application 개체는 Word 응용 프로그램을 나타내며 다른 모든 개체의 부모 개체입니다. 이 개체의 멤버는 일반적으로 Word 전체에 적용됩니다. 이 개체의 속성과 메서드를 사용하여 Word 환경을 제어할 수 있습니다.
응용 프로그램 수준 추가 기능 프로젝트의 경우 ThisAddIn 클래스의 Application 필드를 사용하여 Application 개체에 액세스할 수 있습니다. 자세한 내용은 응용 프로그램 수준 추가 기능 프로그래밍을 참조하십시오.
문서 수준 프로젝트의 경우 ThisDocument 클래스의 Application 속성을 사용하여 Application 개체에 액세스할 수 있습니다.
Document 개체
Microsoft.Office.Interop.Word.Document 개체는 Word 프로그래밍의 핵심입니다. 이 개체는 문서 및 모든 해당 내용을 나타냅니다. 문서를 열거나 새 문서를 만들 때 사용자가 새 Microsoft.Office.Interop.Word.Document 개체를 만들면 이 개체는 Application 개체의 Documents 컬렉션에 추가됩니다. 포커스가 있는 문서를 활성 문서라고 합니다. 활성 문서는 Application 개체의 ActiveDocument 속성에 의해 나타납니다.
Visual Studio Tools for Office에서는 Microsoft.Office.Tools.Word.Document 클래스를 제공하여 Microsoft.Office.Interop.Word.Document 개체를 확장합니다. 이 클래스는 네이티브 Microsoft.Office.Interop.Word.Document 클래스의 모든 멤버에 액세스할 수 있게 해 줄 뿐 아니라 추가 이벤트와 관리되는 컨트롤 및 스마트 태그를 추가하는 기능을 제공하는 호스트 항목입니다. 자세한 내용은 호스트 항목 및 호스트 컨트롤 개요를 참조하십시오.
문서 수준 프로젝트를 만들면 Visual Studio Tools for Office에서는 Microsoft.Office.Tools.Word.Document 클래스에서 파생되는 ThisDocument라는 클래스를 생성합니다. ThisDocument 클래스 내의 코드에서 Me 또는 this 키워드를 사용하거나 ThisDocument 외부의 코드에서 Globals.ThisDocument를 사용하여 Microsoft.Office.Tools.Word.Document 클래스의 멤버에 액세스할 수 있습니다. 예를 들어 문서의 첫 번째 단락을 선택하려면 다음 코드를 사용하십시오.
Me.Paragraphs(1).Range.Select()
this.Paragraphs[1].Range.Select();
SP1부터는 런타임에 Word 2007용 응용 프로그램 수준 추가 기능을 사용하여 Microsoft.Office.Tools.Word.Document 호스트 항목을 생성할 수 있으며, 생성된 호스트 항목을 사용하여 관련된 문서에 컨트롤과 스마트 태그를 추가할 수 있습니다. 자세한 내용은 런타임에 응용 프로그램 수준 추가 기능의 Word 문서 및 Excel 통합 문서 확장을 참조하십시오.
Selection 개체
Selection 개체는 현재 선택된 영역을 나타냅니다. 예를 들어 Word 사용자 인터페이스를 사용하여 텍스트를 굵은 글꼴로 바꾸려면 텍스트를 선택(강조 표시)한 다음 서식을 적용합니다. Selection 개체는 항상 문서에 존재합니다. 선택한 영역이 없는 경우 이 개체는 삽입 지점을 나타냅니다. 선택한 영역에는 인접하지 않은 여러 텍스트 블록이 포함될 수도 있습니다.
Range 개체
Range 개체는 문서에서 인접한 영역을 나타내며 시작 문자 위치와 끝 문자 위치에 의해 정의됩니다. Range 개체 수는 하나로 제한되지 않으며 동일한 문서 안에 여러 Range 개체를 정의할 수 있습니다. Range 개체에는 다음과 같은 특징이 있습니다.
삽입 지점만으로 이루어질 수도 있고, 특정 범위의 텍스트 또는 문서 전체로 구성될 수도 있습니다.
공백, 탭 문자 및 단락 기호 같은 인쇄되지 않는 문자도 포함할 수 있습니다.
현재 선택한 영역을 통해 표시되는 영역일 수도 있고 현재 선택한 영역과 다른 영역을 나타낼 수도 있습니다.
항상 표시되는 선택 영역과는 달리, 문서에 표시되지 않습니다.
문서에 저장되지 않으며 코드를 실행하는 동안만 유지됩니다.
범위의 끝에 텍스트를 삽입하면 Word에서는 삽입된 텍스트가 포함되도록 자동으로 범위를 확장합니다.
Content 컨트롤 개체
Microsoft.Office.Interop.Word.ContentControl을 사용하면 Word 2007 문서에서 텍스트 및 기타 형식의 콘텐츠에 대한 입력 및 표현을 제어할 수 있습니다. Microsoft.Office.Interop.Word.ContentControl을 통해 서식 있는 텍스트 컨트롤, 날짜 선택, 콤보 상자 등과 같이 Word 문서에서 사용하는 데 최적화된 다양한 형식의 UI를 표시할 수 있습니다. Microsoft.Office.Interop.Word.ContentControl을 사용하여 사용자가 문서 또는 서식 파일의 섹션을 편집하지 못하게 할 수도 있습니다.
Visual Studio Tools for Office에서는 Microsoft.Office.Interop.Word.ContentControl 개체를 여러 가지 호스트 컨트롤로 확장합니다. Microsoft.Office.Interop.Word.ContentControl 개체는 Content 컨트롤에 사용할 수 있는 다양한 형식의 UI를 표시할 수 있는 반면에 Visual Studio Tools for Office에서는 각 UI 형식에 대해 서로 다른 클래스를 제공합니다. 예를 들어 RichTextContentControl을 사용하여 서식 있는 텍스트 컨트롤을 만들거나, DatePickerContentControl을 사용하여 날짜 선택을 만들 수 있습니다. 이러한 호스트 컨트롤은 네이티브 Microsoft.Office.Interop.Word.ContentControl처럼 동작하지만 추가 이벤트 및 데이터 바인딩 기능을 가집니다.
자세한 내용은 콘텐츠 컨트롤을 참조하십시오.
Bookmark 개체
Microsoft.Office.Interop.Word.Bookmark 개체는 시작 위치와 끝 위치를 사용하여 문서에서 인접한 영역을 나타냅니다. 책갈피는 문서에서 특정 위치를 표시하기 위해 사용하거나 문서의 텍스트에 대한 컨테이너로 사용할 수 있습니다. Microsoft.Office.Interop.Word.Bookmark 개체는 삽입 지점으로 구성될 수도 있고 전체 문서 크기와 동일할 수도 있습니다. Microsoft.Office.Interop.Word.Bookmark에는 Range 개체와는 다른 다음과 같은 특징이 있습니다.
디자인 타임에 책갈피 이름을 지정할 수 있습니다.
Microsoft.Office.Interop.Word.Bookmark 개체는 문서와 함께 저장되므로 코드 실행이 중지되거나 문서가 닫힌 경우에도 삭제되지 않습니다.
View 개체의 ShowBookmarks 속성을 false 또는 true로 설정하여 책갈피를 숨기거나 표시할 수 있습니다.
Visual Studio Tools for Office에서는 Microsoft.Office.Interop.Word.Bookmark 개체를 호스트 컨트롤로 확장합니다. Microsoft.Office.Tools.Word.Bookmark 컨트롤은 네이티브 Microsoft.Office.Interop.Word.Bookmark처럼 동작하지만 추가 이벤트 및 데이터 바인딩 기능을 가집니다. 이제 Windows Form의 TextBox 컨트롤에 데이터를 바인딩할 때와 같은 방식으로 문서의 Bookmark 컨트롤에 데이터를 바인딩할 수 있습니다.
자세한 내용은 책갈피 컨트롤을 참조하십시오.
Visual Studio Tools for Office 프로젝트의 확장 개체
Word 개체 모델에서 제공하는 네이티브 개체와 Visual Studio Tools for Office에서 제공하는 확장 개체(호스트 항목 및 호스트 컨트롤)를 모두 Word 2007용 문서 수준 프로젝트와 응용 프로그램 수준 프로젝트에서 사용할 수 있으므로 이 두 개체 형식의 차이점을 알아야 합니다. 자세한 내용은 호스트 항목 및 호스트 컨트롤 개요를 참조하십시오.
다음과 같은 네 개의 영역에서 이러한 차이점이 있습니다.
디자인 타임. 디자인 타임에 문서 수준 사용자 지정에 확장된 Word 컨트롤을 추가하면 이 컨트롤은 자동으로 호스트 컨트롤로 만들어집니다. 예를 들어 디자이너에서 문서에 책갈피를 추가하면 코드가 자동으로 생성되어 책갈피를 Microsoft.Office.Tools.Word.Bookmark 컨트롤로 확장합니다.
런타임. 호스트 항목은 런타임에 자동으로 만들어지지 않습니다. Add 메서드를 사용하여 런타임에 문서를 추가하면 이러한 문서는 Microsoft.Office.Interop.Word.Document 개체가 되며 Microsoft.Office.Tools.Word.Document 호스트 항목이 제공하는 추가 기능을 가지지 않습니다. Visual Studio Tools for Office에서 제공하는 도우미 메서드를 사용하면 프로그래밍 방식으로 문서에 호스트 컨트롤을 추가할 수 있습니다. 자세한 내용은 호스트 항목 및 호스트 컨트롤의 프로그래밍에 대한 제한 사항을 참조하십시오.
참고: SP1부터는 런타임에 Word 2007용 응용 프로그램 수준 추가 기능을 사용하여 Microsoft.Office.Tools.Word.Document 호스트 항목을 만들 수도 있습니다. 자세한 내용은 런타임에 응용 프로그램 수준 추가 기능의 Word 문서 및 Excel 통합 문서 확장을 참조하십시오.
새로운 기능. 호스트 항목과 호스트 컨트롤에는 네이티브 개체에서는 사용할 수 없는 기능이 있습니다. 호스트 항목은 관리되는 컨트롤의 컨테이너로 사용되며 추가 이벤트가 있습니다. 호스트 컨트롤은 데이터에 바인딩될 수 있으며 추가 이벤트가 있습니다.
형식. 네이티브 Word 개체에서는 Word에 대한 주 interop 어셈블리의 Microsoft.Office.Interop.Word 네임스페이스에 정의된 형식을 사용하는 반면 호스트 항목과 호스트 컨트롤에서는 Visual Studio Tools for Office 런타임의 Microsoft.Office.Tools.Word 네임스페이스에 정의된 형식을 사용합니다.
Word 개체 모델 설명서 사용
Word 개체 모델에서 사용할 수 있는 클래스에 대한 자세한 내용은 다음 설명서를 참조하십시오.
Welcome to the Microsoft Office Word 2007 Developer Reference
Welcome to the Microsoft Office Word 2003 VBA Language Reference
첫 번째 링크에서는 Word에 대한 주 interop 어셈블리의 클래스 및 인터페이스에 대한 정보를 제공합니다. 다른 링크에서는 VBA(Visual Basic for Applications) 코드에 노출되는 Word 개체 모델에 대한 정보를 제공합니다. 각 설명서를 사용하면 Visual Studio Tools for Office를 사용하는 개발자 대해 장점과 단점이 있습니다.
주 Interop 어셈블리 참조
이 설명서에서는 Visual Studio Tools for Office 프로젝트에서 사용할 수 있는 Word 주 interop 어셈블리의 모든 형식에 대해 설명합니다. 그러나 이 설명서를 사용하면 다음과 같은 단점이 있습니다.
Word 2003에 대한 주 interop 어셈블리의 형식에 대해서만 설명합니다. Word 2007에 대한 새 형식의 주 interop 어셈블리 및 해당 멤버에 대한 설명은 Word 2007의 VBA 참조를 참조해야 합니다.
현재 코드 예제를 제공하지 않습니다.
VBA 참조
VBA 참조의 모든 개체 및 멤버는 Visual Studio Tools for Office 프로젝트에서 사용하는 주 interop 어셈블리의 클래스 및 멤버에 해당합니다. 예를 들어 Word VBA 설명서의 Document 개체는 주 interop 어셈블리의 Microsoft.Office.Interop.Word.Document 클래스에 해당합니다.
VBA 참조를 사용하면 다음과 같은 장점이 있습니다.
Word 2007 및 Word 2003 모두에 대한 개체 모델을 설명합니다.
대부분의 멤버에 대한 코드 예제를 제공합니다.
VBA 참조를 사용하면 다음과 같은 단점이 있습니다.
- VBA 전용 구문 및 코드 예제를 제공합니다. Visual Studio Tools for Office 프로젝트에서 해당 코드 예제를 사용하려면 VBA 코드를 Visual Basic 또는 Visual C#으로 변환해야 합니다.
주 Interop 어셈블리의 추가 형식
주 interop 어셈블리에는 VBA에서 사용할 수 없는 많은 형식이 들어 있습니다. 이러한 추가 형식은 Word의 COM 기반 개체 모델에 포함된 개체를 관리 코드로 변환하는 데 유용하지만 코드에서 직접 사용할 수는 없습니다.
자세한 내용은 Overview of Classes and Interfaces in the Office Primary Interop Assemblies를 참조하십시오.
참고 항목
개념
호스트 항목 및 호스트 컨트롤의 프로그래밍에 대한 제한 사항
참조
기타 리소스
변경 기록
날짜 |
변경 내용 |
원인 |
---|---|---|
2008년 7월 |
응용 프로그램 수준 추가 기능에서 Document 호스트 항목을 만드는 방법에 대한 정보가 추가되었습니다. |
SP1 기능 변경 |