Share via


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

更新 : 2010 年 5 月

Microsoft Office Excel を使用したソリューションを開発するには、Excel オブジェクト モデルで提供されるオブジェクトを操作する必要があります。 ここでは、最も重要な次のオブジェクトについて説明します。

対象: このトピックの情報は、Excel 2007 と Excel 2010 のドキュメント レベルのプロジェクトおよびアプリケーション レベルのプロジェクトに適用されます。詳細については、「Office アプリケーションおよびプロジェクト タイプ別の使用可能な機能」を参照してください。

オブジェクト モデルは、ユーザー インターフェイスとほとんど同じです。 Application オブジェクトはアプリケーション全体を表し、Workbook オブジェクトにはそれぞれ Worksheet オブジェクトのコレクションが含まれています。 その中でも、セルを表す主要な抽象層は Range オブジェクトです。このオブジェクトを使用して、個々のセルまたはセルのグループを操作できます。

Excel オブジェクト モデルに加えて、Visual Studio の Office プロジェクトには、Excel オブジェクト モデルの一部のオブジェクトを拡張するホスト項目およびホスト コントロールが用意されています。 ホスト項目およびホスト コントロールの動作は拡張元の Excel オブジェクトに似ていますが、データ バインディングなどの機能やその他のイベントが追加されています。 詳細については、「拡張オブジェクトによる Excel の自動化」および「ホスト項目とホスト コントロールの概要」を参照してください。

ここでは、Excel オブジェクト モデルの概要を簡単に説明します。 Excel オブジェクト モデル全体への理解を深めるのに役立つ資料については、「Excel オブジェクト モデル ドキュメントの使用」を参照してください。

ビデオへのリンク 関連のビデオ デモについては、「How Do I: Use Event Handlers in an Excel 2007 Add-in? (操作方法: Excel 2007 アドインでイベント ハンドラーを使用する)」および「How Do I: Use Shapes to Create a Bubble Chart in Excel? (操作方法: Excel で図形を使用してバブル チャートを作成する)」を参照してください。

Excel プロジェクトのオブジェクトへのアクセス

Excel 用のアプリケーション レベルのプロジェクトを新しく作成すると、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 クラスを使用して、各クラスの外部から ThisWorkbook、Sheet1、Sheet2、または Sheet3 にアクセスできます。 詳細については、「Office プロジェクト内のオブジェクトへのグローバル アクセス」を参照してください。 次の例では、Sheetn クラスのいずれか、または ThisWorkbook クラスにコードが配置されているかどうかに関係なく、Sheet1 の PrintPreview メソッドが呼び出されます。

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

Excel ドキュメントのデータは高度に構造化されているため、オブジェクト モデルは階層的で単純明快です。 Excel には、操作可能なオブジェクトが多数用意されていますが、使用できるオブジェクトのうち、非常に小さいサブセットに焦点を絞ることで、オブジェクト モデルを理解しやすくなります。 これらのオブジェクトには、次の 4 つが含まれます。

  • アプリケーション

  • ブック

  • ワークシート

  • 範囲

Excel に対して行うほとんどの作業では、これらの 4 つのオブジェクトとそのメンバーを使用します。

Application オブジェクト

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

注意

Excel の Application オブジェクトの EnableEvents プロパティを false に設定しないでください。 false に設定すると、Excel でイベント (ホスト コントロールのイベントなど) が生成されなくなります。

Workbook オブジェクト

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

Visual Studio の Office 開発ツールは Microsoft.Office.Tools.Excel.Workbook 型を提供することで、Microsoft.Office.Interop.Excel.Workbook オブジェクトを拡張します。 この型は、Microsoft.Office.Interop.Excel.Workbook オブジェクトのすべての機能と、ブックにスマート タグを追加するなどの新機能を使用できるようにします。 詳細については、「Workbook ホスト項目」を参照してください。

注意

スマート タグは、Excel 2010 および Word 2010 では使用されていません。 詳細については、「スマート タグの概要」を参照してください。

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 オブジェクトのプロパティとして用意されています。 Sheets コレクションの各メンバーは、Microsoft.Office.Interop.Excel.Worksheet オブジェクトまたは Microsoft.Office.Interop.Excel.Chart オブジェクトです。

Visual Studio の Office 開発ツールは Microsoft.Office.Tools.Excel.Worksheet 型を提供することで、Microsoft.Office.Interop.Excel.Worksheet オブジェクトを拡張します。 この型は、Microsoft.Office.Interop.Excel.Worksheet オブジェクトのすべての機能と、マネージ コントロールをホストして新しいイベントを処理するなどの新機能を使用できるようにします。 詳細については、「Worksheet ホスト項目」を参照してください。

Range オブジェクト

Microsoft.Office.Interop.Excel.Range オブジェクトは、Excel アプリケーション内で最も使用されるオブジェクトです。 Excel 内の任意の範囲を操作するには、まず、目的の範囲を Range オブジェクトとして表現し、その範囲のメソッドとプロパティを操作する必要があります。 Range オブジェクトは、セル、行、列、1 つ以上のセルのブロックを含むセルの選択範囲 (連続または非連続)、または複数のシートにまたがるセルのグループを表します。

Visual Studio では、Microsoft.Office.Tools.Excel.NamedRange 型および Microsoft.Office.Tools.Excel.XmlMappedRange 型を提供することによって、Microsoft.Office.Interop.Excel.Range オブジェクトを拡張しています。 これらの型は、Microsoft.Office.Interop.Excel.Range オブジェクトの大部分の機能に加えて、データ バインディング機能や新しいイベントなどの新機能も備えています。 詳細については、「NamedRange コントロール」および「XmlMappedRange コントロール」を参照してください。

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

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

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

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

注意

現時点では、Excel 2007 PIA は文書化されていません。 ただし、Excel 2007 PIA の型も Excel 2010 PIA に含まれています。そのため、このリファレンス ドキュメントの情報は Excel 2007 にも利用できます。

PIA のクラスとインターフェイスの違い、PIA のイベントの実装方法など、Excel PIA の設計の詳細については、「Overview of Classes and Interfaces in the Office Primary Interop Assemblies (Office プライマリ相互運用機能アセンブリのクラスとインターフェイスの概要)」を参照してください。

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

VBA オブジェクト モデルのリファレンスでは、Visual Basic for Applications (VBA) コードに公開される Excel オブジェクト モデルについて説明しています。 Excel 用の VBA オブジェクト モデルのリファレンスには、次の場所からアクセスできます。

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

関連トピック

タイトル

説明

方法: BDC モデルを作成する

Microsoft Office Excel 用のドキュメント レベルのカスタマイズおよびアプリケーション レベルのアドインの作成方法について説明します。

方法: 既存の BDC モデル ファイルを SharePoint プロジェクトに追加する

セルを操作する一般的なタスクを実行する方法の例を示します。

方法: リソース ファイルを使用して、ローカライズした名前、プロパティ、およびアクセス許可を指定する

セル範囲を操作する一般的なタスクを実行する方法の例を示します。

方法: BDC 機能にカスタム アセンブリを含める

ワークシートを操作する一般的なタスクを実行する方法の例を示します。

ブックの操作

ブックを操作する一般的なタスクを実行する方法の例を示します。

履歴の変更

日付

履歴

理由

2010 年 5 月

オブジェクト モデルのリファレンス ドキュメントに関する情報を更新しました。

情報の拡充