Excel オブジェクトモデルの概要Excel object model overview

Microsoft Office Excel を使用するソリューションを開発するため、Excel オブジェクト モデルによって提供されるオブジェクトと対話することができます。To develop solutions that use Microsoft Office Excel, you can interact with the objects provided by the Excel object model. このトピックでは、特に重要なオブジェクトについて説明します。This topic introduces the most important objects:


複数のプラットフォームで Office エクスペリエンスを拡張するソリューションの開発に関心がありますか。Interested in developing solutions that extend the Office experience across multiple platforms? 新しいOffice アドインモデルを確認してください。Check out the new Office Add-ins model. Office アドインのフットプリントは、VSTO アドインやソリューションと比較して小さくなります。また、HTML5、JavaScript、CSS3、XML など、ほぼすべての web プログラミングテクノロジを使用してビルドすることができます。Office Add-ins have a small footprint compared to VSTO Add-ins and solutions, and you can build them by using almost any web programming technology, such as HTML5, JavaScript, CSS3, and XML.

オブジェクト モデルは、ユーザー インターフェイスに緊密に従います。The object model closely follows the user interface. Application オブジェクトは、アプリケーション全体を表し、それぞれの Workbook オブジェクトには Worksheet オブジェクトのコレクションが含まれます。The Application object represents the entire application, and each Workbook object contains a collection of Worksheet objects. つまり、セルを表す主要な概念は Range オブジェクトになり、これにより個々のセルやセルのグループを使用できるようになります。From there, the major abstraction that represents cells is the Range object, which enables you to work with individual cells or groups of cells.

Excel オブジェクトモデルに加えて、Visual Studio の Office プロジェクトには、Excel オブジェクトモデルの一部のオブジェクトを拡張するホスト項目ホストコントロールが用意されています。In addition to the Excel object model, Office projects in Visual Studio provide host items and host controls that extend some objects in the Excel object model. ホスト項目とホスト コントロールは、これらが拡張する Excel オブジェクトと同様に動作しますが、これ以外にデータ バインディング機能や他のイベントなどの追加機能もあります。Host items and host controls behave like the Excel objects they extend, but they also have additional functionality such as data-binding capabilities and extra events. 詳細については、「拡張オブジェクトを使用した Excel の自動化」と「ホスト項目とホストコントロールの概要」を参照してください。For more information, see Automate Excel by using extended objects and Host items and host controls overview.

ここでは、Excel オブジェクト モデルの概念について簡単に説明します。This topic provides a brief overview of the Excel object model. Excel オブジェクトモデル全体の詳細については、「 excel オブジェクトモデルドキュメントの使用」を参照してください。For resources where you can learn more about the entire Excel object model, see Use the Excel object model documentation.

Excel プロジェクト内のオブジェクトへのアクセスAccess objects in an Excel project

Excel 用の新しい VSTO アドインプロジェクトを作成すると、Visual Studio によって自動的にThisAddIn .vbまたはThisAddIn.csコードファイルが作成されます。When you create a new VSTO Add-in project for Excel, Visual Studio automatically creates a ThisAddIn.vb or ThisAddIn.cs code file. Me.Application または this.Application を使用して、アプリケーション オブジェクトにアクセスすることができます。You can access the Application object by using Me.Application or this.Application.

Excel で新しいドキュメント レベルのプロジェクトを作成する場合は、新しい Excel ブックまたは Excel テンプレート プロジェクトを作成するオプションがあります。When you create a new document-level project for Excel, you have the option of creating a new Excel Workbook or Excel Template project. Visual Studio によって新しい Excel プロジェクトの次のコード ファイルがブックとテンプレートの両方のプロジェクトで自動的に作成されます。Visual Studio automatically creates the following code files in your new Excel project for both workbook and template projects.

Visual BasicVisual Basic C#C#
ThisWorkbook.vbThisWorkbook.vb ThisWorkbook.csThisWorkbook.cs
Sheet1.vbSheet1.vb Sheet1.csSheet1.cs
Sheet2.vbSheet2.vb Sheet2.csSheet2.cs
Sheet3.vbSheet3.vb Sheet3.csSheet3.cs

プロジェクト内の Globals クラスを使用して、それぞれのクラスの外部から ThisWorkbookSheet1Sheet2、または Sheet3 にアクセスすることができます。You can use the Globals class in your project to access ThisWorkbook, Sheet1, Sheet2, or Sheet3 from outside of the respective class. 詳細については、「 Office プロジェクト内のオブジェクトへのグローバルアクセス」を参照してください。For more information, see Global access to objects in Office projects. 次の例では、コードが Sheetnクラスまたは ThisWorkbook クラスのいずれかに配置されているかどうかに関係なく、Sheet1PrintPreview メソッドを呼び出します。The following example calls the PrintPreview method of Sheet1 regardless of whether the code is placed in one of the Sheetn classes or the ThisWorkbook class.


Excel ドキュメントのデータは高度に構造化されているため、オブジェクト モデルは階層的で単純です。Because the data in an Excel document is highly structured, the object model is hierarchical and straightforward. Excel では、何百ものオブジェクトを操作することができますが、使用可能なオブジェクトの小さなサブセットに焦点を当てることによって、オブジェクトモデルを適切に開始できます。Excel provides hundreds of objects with which you might want to interact, but you can get a good start on the object model by focusing on a small subset of the available objects. このようなオブジェクトには次の 4 つがあります。These objects include the following four:

  • アプリケーションApplication

  • ブックWorkbook

  • ワークシートWorksheet

  • 範囲Range

    Excel の作業の多くはこれら 4 つのオブジェクトとそのメンバーを中心に行われます。Much of the work done with Excel centers around these four objects and their members.

Application オブジェクトApplication object

Excel の Application オブジェクトは、Excel のアプリケーション自体を表します。The Excel Application object represents the Excel application itself. Application オブジェクトは、実行中のアプリケーション、そのインスタンスに適用されるオプション、そのインスタンス内で開いている現在のユーザー オブジェクトに関する多くの情報を公開します。The Application object exposes a great deal of information about the running application, the options applied to that instance, and the current user objects open within the instance.


Excel の EnableEvents オブジェクトの Application プロパティを falseと呼ばれるオブジェクトを拡張します。You should not set the EnableEvents property of the Application object in Excel to false. このプロパティを false に設定すると、ホスト コントロールのイベントを含む、すべてのイベントが Excel で発生しなくなります。Setting this property to false prevents Excel from raising any events, including the events of host controls.

Workbook オブジェクトWorkbook object

Workbook オブジェクトは、Excel アプリケーション内の 1 つのブックを表します。The Workbook object represents a single workbook within the Excel application.

Visual Studio の Office 開発ツールには、 Workbook オブジェクトを拡張する Workbook 型が用意されています。The Office development tools in Visual Studio extend the Workbook object by providing the Workbook type. この型により、Workbook オブジェクトのすべての機能にアクセスできるようになります。This type gives you access to all features of a Workbook object. 詳細については、「 Workbook host item」を参照してください。For more information, see Workbook host item.

Worksheet オブジェクトWorksheet object

Worksheet オブジェクトは Worksheets コレクションのメンバーです。The Worksheet object is a member of the Worksheets collection. Worksheet のプロパティ、メソッド、およびイベントの多くは、Application または Workbook オブジェクトによって提供されるメンバーと同一か類似しています。Many of the properties, methods, and events of the Worksheet are identical or similar to members provided by the Application or Workbook objects.

Excel は、Workbook オブジェクトのプロパティとして Sheets コレクションを提供します。Excel provides a Sheets collection as a property of a Workbook object. Sheets コレクションの各メンバーは、Worksheet または Chart オブジェクトのどちらかです。Each member of the Sheets collection is either a Worksheet or a Chart object.

Visual Studio の Office 開発ツールには、 Worksheet オブジェクトを拡張する Worksheet 型が用意されています。The Office development tools in Visual Studio extend the Worksheet object by providing the Worksheet type. この型は Worksheet オブジェクトのすべての機能にアクセスできるだけでなく、マネージド コントロールをホストし、新しいイベントを処理する機能などの新機能にもアクセスできます。This type gives you access to all features of a Worksheet object, as well as new features such as the ability to host managed controls and handle new events. 詳細については、「ワークシートホスト項目」を参照してください。For more information, see Worksheet host item.

Range オブジェクトRange object

Range オブジェクトは、Excel アプリケーション内で特に使用されるオブジェクトです。The Range object is the object you will use most within your Excel applications. Excel 内で任意の領域を操作するには、その領域を Range オブジェクトとして表し、その範囲のメソッドとプロパティを作業する必要があります。Before you can manipulate any region within Excel, you must express it as a Range object and work with methods and properties of that range. Range オブジェクトは、セル、行、列、セルの 1 つ以上のブロックを含むセルの選択を表します。連続する場合もしない場合もあり、セルのグループが複数のシートにわたっている場合もあります。A Range object represents a cell, a row, a column, a selection of cells that contains one or more blocks of cells, which might or might not be contiguous, or even a group of cells on multiple sheets.

Visual Studio は NamedRange および XmlMappedRange 型を提供することで Range オブジェクトを拡張します。Visual Studio extends the Range object by providing the NamedRange and XmlMappedRange types. これらの型は Range オブジェクトとほぼ同じ機能を含むだけでなく、データ バインディング機能や新しいイベントなどの新機能も含んでいます。These types have most of the same features as a Range object, as well as new features such as the data binding capability and new events. 詳細については、「 NamedRange control and XmlMappedRange control」を参照してください。For more information, see NamedRange control and XmlMappedRange control.

Excel オブジェクトモデルのドキュメントを使用するUse the Excel object model documentation

Excel オブジェクト モデルに関する詳細については、Excel プライマリ相互運用機能アセンブリ (PIA) のリファレンスと、VBA オブジェクト モデルのリファレンスを参照してください。For complete information about the Excel object model, you can refer to the Excel primary interop assembly (PIA) reference and the VBA object model reference.

プライマリ相互運用機能アセンブリのリファレンスPrimary interop assembly reference

Excel PIA のリファレンス ドキュメントは、Excel のプライマリ相互運用機能アセンブリの種類について説明しています。The Excel PIA reference documentation describes the types in the primary interop assembly for Excel. このドキュメントは、 Excel 2010 プライマリ相互運用機能アセンブリ参照の場所から入手できます。This documentation is available from the following location: Excel 2010 primary interop assembly reference.

PIA のクラスとインターフェイスの違い、PIA のイベントの実装方法など、Excel PIA のデザインの詳細については、「 Office プライマリ相互運用機能アセンブリのクラスとインターフェイスの概要」を参照してください。For more information about the design of the Excel PIA, such as the differences between classes and interfaces in the PIA and how events in the PIA are implemented, see Overview of classes and interfaces in the Office primary interop assemblies.

VBA オブジェクトモデルのリファレンスVBA object model reference

VBA オブジェクト モデルのリファレンスでは、Visual Basic for Applications (VBA) コードに公開される Excel オブジェクト モデルについて説明しています。The VBA object model reference documents the Excel object model as it is exposed to Visual Basic for Applications (VBA) code. 詳細については、「 Excel 2010 オブジェクトモデルのリファレンス」を参照してください。For more information, see Excel 2010 object model reference.

VBA オブジェクト モデルのリファレンス内のオブジェクトとメンバーはすべて、Excel PIA の型とメンバーに対応します。All of the objects and members in the VBA object model reference correspond to types and members in the Excel PIA. たとえば、VBA オブジェクトモデルのリファレンスの Worksheet オブジェクトは、Excel PIA の Worksheet オブジェクトに対応します。For example, the Worksheet object in the VBA object model reference corresponds to the Worksheet object in the Excel PIA. VBA オブジェクト モデルのリファレンスでは、ほとんどのプロパティ、メソッド、およびイベントのコード例を紹介しています。ただし、Visual Studio を使用して作成した Excel プロジェクトでこのリファレンス内の VBA コードを使用するには、それらを Visual Basic または Visual C# に変換する必要があります。Although the VBA object model reference provides code examples for most properties, methods, and events, you must translate the VBA code in this reference to Visual Basic or Visual C# if you want to use them in an Excel project that you create by using Visual Studio.

TitleTitle 説明Description
Excel ソリューションExcel solutions Microsoft Office Excel でドキュメント レベルのカスタマイズと VSTO アドインを作成する方法について説明します。Explains how you can create document-level customizations and VSTO Add-ins for Microsoft Office Excel.
範囲の操作Work with ranges 範囲を使用して一般的なタスクを実行する方法を示す例を提供します。Provides examples that show how to perform common tasks with ranges.
ワークシートを操作するWork with worksheets ワークシートを使用して一般的なタスクを実行する方法を示す例を提供します。Provides examples that show how to perform common tasks with worksheets.
ブックの操作Work with workbooks ブックを使用して一般的なタスクを実行する方法を示す例を提供します。Provides examples that show how to perform common tasks with workbooks.