次の方法で共有


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

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

対象: このトピックの情報は、Excel 2013 と 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();

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

  • アプリケーション

  • ブック

  • ワークシート

  • 範囲

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

wss56bz7.collapse_all(ja-jp,VS.110).gifApplication オブジェクト

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

[!メモ]

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

wss56bz7.collapse_all(ja-jp,VS.110).gifWorkbook オブジェクト

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 ホスト項目」を参照してください。

wss56bz7.collapse_all(ja-jp,VS.110).gifWorksheet オブジェクト

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 ホスト項目」を参照してください。

wss56bz7.collapse_all(ja-jp,VS.110).gifRange オブジェクト

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

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 オブジェクト モデルのリファレンスを参照してください。

wss56bz7.collapse_all(ja-jp,VS.110).gifプライマリ相互運用機能アセンブリのリファレンス

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

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

wss56bz7.collapse_all(ja-jp,VS.110).gifVBA オブジェクト モデルのリファレンス

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

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

wss56bz7.collapse_all(ja-jp,VS.110).gif関連トピック

タイトル

説明

Excel ソリューション

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

範囲の使用

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

ワークシートの操作

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

ブックの操作

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