다음을 통해 공유


Excel 개체 모델 개요

업데이트: 2007년 11월

적용 대상

이 항목의 정보는 지정된 Visual Studio Tools for Office 프로젝트 및 Microsoft Office 버전에만 적용됩니다.

프로젝트 형식

  • 문서 수준 프로젝트

  • 응용 프로그램 수준 프로젝트

Microsoft Office 버전

  • Excel 2003

  • Excel 2007

자세한 내용은 응용 프로그램 및 프로젝트 형식에 따라 사용 가능한 기능을 참조하십시오.

Microsoft Office Excel을 사용하는 솔루션을 개발하려면 Excel 개체 모델에서 제공하는 개체와 상호 작용합니다. 이 항목에서는 가장 중요한 다음 클래스에 대해 소개합니다.

개체 모델은 사용자 인터페이스와 매우 유사한 방식으로 구성되어 있습니다. Application 개체는 전체 응용 프로그램을 나타내고 각 Workbook 개체는 Worksheet 개체의 컬렉션을 포함합니다. 여기서 셀을 나타내는 주요 추상화는 개별 셀 또는 셀 그룹과 관련된 작업을 할 수 있게 해 주는 Range 개체입니다.

Visual Studio Tools for Office에서는 문서 수준 사용자 지정에서 사용할 수 있는 호스트 항목 및 호스트 컨트롤이 이러한 대부분의 네이티브 개체를 확장합니다. 이러한 컨트롤에는 데이터 바인딩 기능 및 이벤트 등의 추가적인 기능이 있습니다. 예를 들어, 네이티브 Excel Microsoft.Office.Interop.Excel.Range 개체는 Microsoft.Office.Tools.Excel.NamedRange 컨트롤로 확장됩니다. 이 컨트롤은 데이터에 바인딩될 수 있으며 이벤트를 노출합니다. 호스트 항목 및 호스트 컨트롤에 대한 자세한 내용은 문서 수준 프로젝트의 확장된 개체를 참조하십시오.

이 항목에서는 Excel 개체 모델을 간단히 소개합니다. 전체 Excel 개체 모델에 대한 자세한 내용은 Excel 개체 모델 설명서 사용을 참조하십시오.

Excel 프로젝트에서 개체 액세스

Visual Studio Tools for Office를 사용하여 Excel용 응용 프로그램 수준 프로젝트를 새로 만들면 Visual Studio에서 자동으로 ThisAddIn.vb 또는 ThisAddIn.cs 코드 파일이 만들어집니다. Me.Application 또는 this.Application을 사용하여 Application 개체에 액세스할 수 있습니다.

Visual Studio Tools for Office를 사용하여 Excel용 새 문서 수준 프로젝트를 만들 경우 Excel 통합 문서 프로젝트나 Excel 서식 파일 프로젝트를 새로 만들 수 있습니다. Visual Studio Tools for Office에서는 통합 문서 프로젝트와 서식 파일 프로젝트 모두에 대해 다음과 같은 코드 파일이 새 Excel 프로젝트에 자동으로 만들어집니다.

Visual Basic

C#

ThisWorkbook.vb

ThisWorkbook.cs

Sheet1.vb

Sheet1.cs

Sheet2.vb

Sheet2.cs

Sheet3.vb

Sheet3.cs

전역 클래스 Globals를 사용하여 각 클래스 외부에서 ThisWorkbook, Sheet1, Sheet2 또는 Sheet3에 액세스할 수 있습니다. 자세한 내용은 Visual Studio Tools for Office 프로젝트의 개체에 전역 액세스를 참조하십시오. 다음 예제에서는 Sheet1의 PrintPreview 메서드를 호출합니다. 이때 코드가 Sheet 클래스와 Workbook 클래스 중 어디에 있는지는 상관없습니다.

Globals.Sheet1.PrintPreview()
Globals.Sheet1.PrintPreview(missing);

Excel 문서의 데이터가 매우 구조적이므로 개체 모델은 계층적이고 간단합니다. Excel에서 제공되는 상호 작용 가능한 개체의 수는 매우 많지만 우선 사용 가능한 몇 가지 개체를 중점적으로 살펴보는 것만으로도 개체 모델 작업을 시작할 수 있습니다. 이러한 개체로는 다음 네 가지가 있습니다.

  • Application

  • Workbook

  • Worksheet

  • Range

Excel을 통해 수행하는 작업의 대부분은 이 네 가지 클래스 및 이들의 멤버를 중심으로 진행됩니다.

Application 개체

Excel Application 개체는 Excel 응용 프로그램 자체를 나타냅니다. Application 개체는 실행 중인 응용 프로그램, 해당 인스턴스에 적용된 옵션 및 인스턴스 내에서 열려 있는 현재 사용자 개체에 대한 많은 양의 정보를 노출합니다.

참고:

Excel에서 Application 개체의 EnableEvents 속성을 false로 설정하지 마십시오. 이 속성을 false로 설정하면 Excel에서 호스트 컨트롤 이벤트를 비롯한 모든 이벤트가 발생하지 않습니다.

Workbook 개체

Microsoft.Office.Interop.Excel.Workbook 클래스는 Excel 응용 프로그램 내의 단일 통합 문서를 나타냅니다.

Visual Studio Tools for Office에서는 데이터 바인딩 기능 및 추가 이벤트와 함께, Workbooks 컬렉션의 모든 멤버에 액세스할 수 있게 해 주는 Microsoft.Office.Tools.Excel.Workbook 클래스를 제공하여 Microsoft.Office.Interop.Excel.Workbook 클래스를 확장합니다.

Worksheet 개체

Microsoft.Office.Interop.Excel.Worksheet 개체는 Worksheets 컬렉션의 멤버입니다. Microsoft.Office.Interop.Excel.Worksheet의 속성, 메서드 및 이벤트 대부분은 Application 또는 Microsoft.Office.Interop.Excel.Workbook 클래스에서 제공하는 멤버와 동일하거나 유사합니다.

Excel에서는 Sheets 컬렉션을 Microsoft.Office.Interop.Excel.Workbook 개체의 속성으로 제공하지만 Excel에는 Sheet 클래스가 없습니다. 대신 Sheets 컬렉션의 각 멤버가 Microsoft.Office.Interop.Excel.Worksheet 또는 Microsoft.Office.Interop.Excel.Chart 개체입니다.

문서 수준 사용자 지정의 경우 Visual Studio Tools for Office에서는 Microsoft.Office.Tools.Excel.Worksheet 호스트 항목을 제공하고 새 프로젝트에 Sheet1, Sheet2 및 Sheet3이라는 세 개의 인스턴스를 만듭니다. Globals 참조를 통해 어느 시트에나 액세스할 수 있습니다. Visual Studio Tools for Office에서는 Microsoft.Office.Tools.Excel.Worksheet 호스트 항목을 제공하여 Microsoft.Office.Interop.Excel.Worksheet 개체를 확장합니다.

Range 개체

Microsoft.Office.Interop.Excel.Range 개체는 Excel 응용 프로그램에서 가장 자주 사용되는 개체입니다. Excel 내의 특정 영역을 조작하려면 먼저 이 영역을 Range 개체로 표현하고 해당 범위의 메서드 및 속성과 관련된 작업을 수행해야 합니다. Range 개체는 셀, 행 또는 열을 나타낼 뿐 아니라, 하나 이상의 셀 블록(연속 또는 불연속)이 포함된 셀 선택 영역 또는 심지어 여러 시트에 걸친 셀 그룹도 나타냅니다.

문서 수준 사용자 지정의 경우 Visual Studio Tools for Office에서는 Microsoft.Office.Tools.Excel.NamedRange 컨트롤과 Microsoft.Office.Tools.Excel.XmlMappedRange 컨트롤이라는 두 개의 범위 호스트 컨트롤을 제공합니다. 호스트 컨트롤에 대한 자세한 내용은 호스트 항목 및 호스트 컨트롤 개요를 참조하십시오.

문서 수준 프로젝트의 확장된 개체

Excel 개체 모델에서 제공하는 네이티브 개체와 Visual Studio Tools for Office에서 제공하는 확장된 개체(호스트 항목 및 호스트 컨트롤)의 차이점을 알아야 합니다. 두 형식의 개체 모두 문서 수준 프로젝트에서 사용할 수 있습니다.

다음과 같은 네 개의 영역에서 이러한 차이점이 있습니다.

  • 디자인 타임. 디자인 타임에 확장된 Excel 개체를 추가하면 자동으로 이 개체가 호스트 항목 및 호스트 컨트롤로 만들어집니다. 예를 들어, 디자이너에서 워크시트에 목록을 추가하면 코드가 자동으로 생성되어 목록을 Microsoft.Office.Tools.Excel.ListObject 컨트롤로 확장합니다.

  • 런타임. 호스트 항목은 런타임에 자동으로 만들어지지 않습니다. 런타임에 통합 문서, 워크시트 또는 차트를 추가하면 이러한 개체는 네이티브 Excel 개체가 되며 호스트 항목이 제공하는 추가 기능을 가지지 않습니다. 여러 호스트 컨트롤을 프로그래밍 방식으로 추가할 수 있습니다. 자세한 내용은 호스트 항목 및 호스트 컨트롤 개요를 참조하십시오.

  • 데이터 바인딩 및 이벤트. 호스트 항목과 호스트 컨트롤에는 네이티브 개체에 없는 데이터 바인딩 기능과 이벤트가 있습니다.

  • 형식. 네이티브 Excel 개체에서는 Microsoft.Office.Interop.Excel 네임스페이스에 정의된 형식을 사용하는 반면 호스트 항목 및 호스트 컨트롤에서는 Microsoft.Office.Tools.Excel 네임스페이스에 정의된 집계되는 형식을 사용합니다.

Excel 개체 모델 설명서 사용

Excel 개체 모델에서 사용할 수 있는 클래스에 대한 자세한 내용은 다음 설명서를 참조하십시오.

첫 번째 링크에서는 Excel에 대한 주 interop 어셈블리의 클래스 및 인터페이스에 대한 정보를 제공합니다. 다른 링크에서는 VBA(Visual Basic for Applications) 코드에 노출되는 Excel 개체 모델에 대한 정보를 제공합니다. 각 설명서를 사용하면 Visual Studio Tools for Office를 사용하는 개발자 대해 장점과 단점이 있습니다.

주 Interop 어셈블리 참조

이 설명서에서는 Visual Studio Tools for Office 프로젝트에서 사용할 수 있는 Excel 주 interop 어셈블리의 모든 형식에 대해 설명합니다. 그러나 이 설명서를 사용하면 다음과 같은 단점이 있습니다.

  • Excel 2003에 대한 주 interop 어셈블리의 형식에 대해서만 설명합니다. Excel 2007에 대한 새 형식의 주 interop 어셈블리 및 해당 멤버에 대한 설명은 Excel 2007의 VBA 참조를 참조해야 합니다.

  • 현재 코드 예제를 제공하지 않습니다.

VBA 참조

VBA 참조의 모든 개체 및 멤버는 Visual Studio Tools for Office 프로젝트에서 사용하는 주 interop 어셈블리의 클래스 및 멤버에 해당합니다. 예를 들어 Excel VBA 설명서의 Worksheet 개체는 주 interop 어셈블리의 Microsoft.Office.Interop.Excel.Worksheet 클래스에 해당합니다.

VBA 참조를 사용하면 다음과 같은 장점이 있습니다.

  • Excel 2007 및 Excel 2003 모두에 대한 개체 모델을 설명합니다.

  • 대부분의 멤버에 대한 코드 예제를 제공합니다.

VBA 참조를 사용하면 다음과 같은 단점이 있습니다.

  • VBA 전용 구문 및 코드 예제를 제공합니다. Visual Studio Tools for Office 프로젝트에서 해당 코드 예제를 사용하려면 VBA 코드를 Visual Basic 또는 Visual C#으로 변환해야 합니다.

주 Interop 어셈블리의 추가 형식

주 interop 어셈블리에는 VBA에서 사용할 수 없는 많은 형식이 들어 있습니다. 이러한 추가 형식은 Excel의 COM 기반 개체 모델에 포함된 개체를 관리 코드로 변환하는 데 유용하지만 코드에서 직접 사용할 수는 없습니다.

자세한 내용은 Overview of Classes and Interfaces in the Office Primary Interop Assemblies를 참조하십시오.

참고 항목

개념

Excel 솔루션

Excel 응용 프로그램 수준 추가 기능 개발

셀 작업

범위 작업

워크시트 작업

통합 문서 사용

Excel 문서 수준 사용자 지정 개발

Word 개체 모델 개요

호스트 항목 및 호스트 컨트롤 개요

호스트 항목 및 호스트 컨트롤의 프로그래밍에 대한 제한 사항

Office 솔루션의 선택적 매개 변수 이해

기타 리소스

Excel 호스트 컨트롤