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

Microsoft Office Excel を使用するソリューションを開発するため、Excel オブジェクト モデルによって提供されるオブジェクトと対話することができます。 このトピックでは、特に重要なオブジェクトについて説明します。

Note

複数のプラットフォームで Office エクスペリエンスを拡張するソリューションの開発に関心がありますか。 新しい Office アドイン モデルを確認してください。 Office アドインの占有領域は、VSTO アドインやソリューションと比較して小さく、その作成には、HTML5、JavaScript、CSS3、XML など、ほぼすべての Web プログラミング テクノロジを使用できます。

オブジェクト モデルは、ユーザー インターフェイスに緊密に従います。 Application オブジェクトは、アプリケーション全体を表し、それぞれの Workbook オブジェクトには Worksheet オブジェクトのコレクションが含まれます。 つまり、セルを表す主要な概念は Range オブジェクトになり、これにより個々のセルやセルのグループを使用できるようになります。

Visual Studio の Office プロジェクトは、Excel オブジェクト モデルだけでなく、Excel オブジェクト モデルの一部のオブジェクトを拡張する "ホスト項目" と "ホスト コントロール" を提供します。 ホスト項目とホスト コントロールは、これらが拡張する Excel オブジェクトと同様に動作しますが、これ以外にデータ バインディング機能や他のイベントなどの追加機能もあります。 詳細については、「拡張オブジェクトを使用して Excel を自動化する」および「ホスト項目とホスト コントロールの概要」を参照してください。

ここでは、Excel オブジェクト モデルの概念について簡単に説明します。 Excel オブジェクト モデル全体の詳細に関するリソースについては、「Excel オブジェクト モデルのドキュメントを使用する」を参照してください。

Excel プロジェクトでオブジェクトにアクセスする

Excel で新しい VSTO アドイン プロジェクトを作成すると、Visual Studio によって ThisAddIn.vb または ThisAddIn.cs というコード ファイルが自動的に作成されます。 Me.Application または this.Application を使用して、アプリケーション オブジェクトにアクセスすることができます。

Excel で新しいドキュメント レベルのプロジェクトを作成する場合は、新しい Excel ブックまたは Excel テンプレート プロジェクトを作成するオプションがあります。 Visual Studio によって新しい Excel プロジェクトの次のコード ファイルがブックとテンプレートの両方のプロジェクトで自動的に作成されます。

Visual Basic C#
ThisWorkbook.vb ThisWorkbook.cs
Sheet1.vb Sheet1.cs
Sheet2.vb Sheet2.cs
Sheet3.vb Sheet3.cs

プロジェクト内の Globals クラスを使用して、それぞれのクラスの外部から ThisWorkbookSheet1Sheet2、または Sheet3 にアクセスすることができます。 詳細については、「Office プロジェクト内のオブジェクトへのグローバル アクセス」を参照してください。 次の例では、コードが Sheetn クラスまたは ThisWorkbook クラスのいずれかに配置されているかどうかに関係なく、Sheet1PrintPreview メソッドを呼び出します。

Globals.Sheet1.PrintPreview();

Excel ドキュメントのデータは高度に構造化されているため、オブジェクト モデルは階層的で単純です。 Excel では対話が可能な何百ものオブジェクトを提供していますが、最初にオブジェクト モデルを使い始めるときは、使用可能なオブジェクトの小さなサブセットに重点を置くと良いでしょう。 このようなオブジェクトには次の 4 つがあります。

  • アプリケーション

  • ブック

  • ワークシート

  • Range

    Excel の作業の多くはこれら 4 つのオブジェクトとそのメンバーを中心に行われます。

アプリケーション オブジェクト

Excel の Application オブジェクトは、Excel のアプリケーション自体を表します。 Application オブジェクトは、実行中のアプリケーション、そのインスタンスに適用されるオプション、そのインスタンス内で開いている現在のユーザー オブジェクトに関する多くの情報を公開します。

Note

Excel の EnableEvents オブジェクトの Application プロパティを falseと呼ばれるオブジェクトを拡張します。 このプロパティを false に設定すると、ホスト コントロールのイベントを含む、すべてのイベントが Excel で発生しなくなります。

Workbook オブジェクト

Workbook オブジェクトは、Excel アプリケーション内の 1 つのブックを表します。

Visual Studio の Office 開発ツールには、 Workbook オブジェクトを拡張する Workbook 型が用意されています。 この型により、Workbook オブジェクトのすべての機能にアクセスできるようになります。 詳細については、「Workbook ホスト項目」を参照してください。

Worksheet オブジェクト

Worksheet オブジェクトは Worksheets コレクションのメンバーです。 Worksheet のプロパティ、メソッド、およびイベントの多くは、Application または Workbook オブジェクトによって提供されるメンバーと同一か類似しています。

Excel は、Workbook オブジェクトのプロパティとして Sheets コレクションを提供します。 Sheets コレクションの各メンバーは、Worksheet または Chart オブジェクトのどちらかです。

Visual Studio の Office 開発ツールには、 Worksheet オブジェクトを拡張する Worksheet 型が用意されています。 この型は Worksheet オブジェクトのすべての機能にアクセスできるだけでなく、マネージド コントロールをホストし、新しいイベントを処理する機能などの新機能にもアクセスできます。 詳しくは、「Worksheet ホスト項目」をご覧ください。

Range オブジェクト

Range オブジェクトは、Excel アプリケーション内で特に使用されるオブジェクトです。 Excel 内で任意の領域を操作するには、その領域を Range オブジェクトとして表し、その範囲のメソッドとプロパティを作業する必要があります。 Range オブジェクトは、セル、行、列、セルの 1 つ以上のブロックを含むセルの選択を表します。連続する場合もしない場合もあり、セルのグループが複数のシートにわたっている場合もあります。

Visual Studio は NamedRange および XmlMappedRange 型を提供することで Range オブジェクトを拡張します。 これらの型は Range オブジェクトとほぼ同じ機能を含むだけでなく、データ バインディング機能や新しいイベントなどの新機能も含んでいます。 詳細については、「NamedRange コントロール」と「XmlMappedRange コントロール」を参照してください。

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

Excel オブジェクト モデルに関する詳細については、Excel プライマリ相互運用機能アセンブリ (PIA) のリファレンスと、VBA オブジェクト モデルのリファレンスを参照してください。

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

Excel PIA のリファレンス ドキュメントは、Excel のプライマリ相互運用機能アセンブリの種類について説明しています。 このドキュメントは、「Excel 2010 プライマリ相互運用機能アセンブリのリファレンス」から入手できます。

PIA のクラスとインターフェイスの違い、PIA のイベントの実装方法など、Excel PIA の設計の詳細については、Office プライマリ相互運用機能アセンブリのクラスとインターフェイスの概要に関する記事を参照してください。

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

VBA オブジェクト モデルのリファレンスでは、Visual Basic for Applications (VBA) コードに公開される Excel オブジェクト モデルについて説明しています。 詳細については、Excel 2010 オブジェクト モデル リファレンスに関する記事を参照してください。

VBA オブジェクト モデルのリファレンス内のオブジェクトとメンバーはすべて、Excel PIA の型とメンバーに対応します。 たとえば、VBA オブジェクト モデルのリファレンス内の Worksheet オブジェクトは、Excel PIA の Worksheet オブジェクトに対応します。 VBA オブジェクト モデルのリファレンスでは、ほとんどのプロパティ、メソッド、およびイベントのコード例を紹介しています。ただし、Visual Studio を使用して作成した Excel プロジェクトでこのリファレンス内の VBA コードを使用するには、それらを Visual Basic または Visual C# に変換する必要があります。

Title 説明
Excel ソリューション Microsoft Office Excel でドキュメント レベルのカスタマイズと VSTO アドインを作成する方法について説明します。
範囲の操作 範囲を使用して一般的なタスクを実行する方法を示す例を提供します。
ワークシートを操作する ワークシートを使用して一般的なタスクを実行する方法を示す例を提供します。
ブックを操作する ブックを使用して一般的なタスクを実行する方法を示す例を提供します。