この記事の英語版を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

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

 

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

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

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

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

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

ビデオへのリンク 関連するビデオ デモについては、「Excel 2007 アドインでイベント ハンドラーを使用する方法」および「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 オブジェクトは、実行中のアプリケーション、そのインスタンスに適用されるオプション、そのインスタンス内で開いている現在のユーザー オブジェクトに関する多くの情報を公開します。

System_CAPS_noteメモ

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

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

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

Excel は、Microsoft.Office.Interop.Excel.Workbook オブジェクトのプロパティとして Sheets コレクションを提供します。 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 ホスト項目」を参照してください。

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 プライマリ相互運用機能アセンブリ (PIA) のリファレンスと、VBA オブジェクト モデルのリファレンスを参照してください。

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

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

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

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

Title

説明

Excel ソリューション

Microsoft Office Excel でドキュメント レベルのカスタマイズと VSTO アドインを作成する方法について説明します。

範囲の使用

範囲を使用して一般的なタスクを実行する方法を示す例を提供します。

ワークシートの操作

ワークシートを使用して一般的なタスクを実行する方法を示す例を提供します。

ブックの操作

ブックを使用して一般的なタスクを実行する方法を示す例を提供します。

表示: