Share via


ドキュメント レベルのカスタマイズのプログラミング

更新 : 2007 年 11 月

対象

このトピックの情報は、指定された Visual Studio Tools for Office プロジェクトおよび Microsoft Office のバージョンにのみ適用されます。

プロジェクトの種類

  • ドキュメント レベルのプロジェクト

Microsoft Office のバージョン

  • 2007 Microsoft Office system

  • Microsoft Office 2003

詳細については、「アプリケーションおよびプロジェクトの種類別の使用可能な機能」を参照してください。

ドキュメント レベルのカスタマイズを使用して Microsoft Office Word または Microsoft Office Excel を拡張するときには、以下のタスクを実行できます。

  • Microsoft Office アプリケーションをそのアプリケーションのオブジェクト モデルを使用して自動化する。

  • ドキュメントにコントロールを追加する。

  • ドキュメント内の Visual Basic for Applications (VBA) コードをカスタマイズ アセンブリから呼び出す。

  • カスタマイズ アセンブリのコードを VBA から呼び出す。

  • Microsoft Office がインストールされていないサーバー上でドキュメントの特定部分を管理する。

  • アプリケーションのユーザー インターフェイス (UI: User Interface) をカスタマイズする。

ドキュメント レベルのカスタマイズおよび Visual Studio Tools for Office で作成できる他のソリューションの種類の概要については、「Office ソリューションの開発の概要」を参照してください。

ドキュメント レベルのプロジェクトのコードの記述

ドキュメント レベルのプロジェクトを作成すると、Visual Studio Tools for Office によって、コードの記述に使用できるクラスがプロジェクト内に自動的に生成されます。Word と Excel では Visual Studio Tools for Office が生成するクラスが異なります。

  • Word のドキュメント レベルのプロジェクトでは、生成されるクラスの既定の名前は ThisDocument です。

  • Excel のドキュメント レベルのプロジェクトでは、ブックについて 1 つ、各ワークシートについて 1 つずつクラスが生成されます。既定では、それらのクラスの名前は次のようになります。

    • ThisWorkbook

    • Sheet1

    • Sheet2

    • Sheet3

生成されるクラスには、ドキュメントを開いたとき、または閉じたときに呼び出されるイベント ハンドラが含まれています。ドキュメントを開くときにコードを実行するには、Startup イベント ハンドラにコードを追加します。ドキュメントを閉じる直前にコードを実行するには、Shutdown イベント ハンドラにコードを追加します。詳細については、「Visual Studio Tools for Office プロジェクトのイベント」を参照してください。

ドキュメント レベルのプロジェクト内に自動生成されるクラスは、いずれもホスト項目と呼ばれる Visual Studio Tools for Office クラスから派生します。たとえば、Word プロジェクトに生成される ThisDocument クラスは Microsoft.Office.Tools.Word.Document ホスト項目から派生します。詳細については、「ホスト項目とホスト コントロールの概要」を参照してください。

ホスト アプリケーションのオブジェクト モデルへのアクセス

ホスト アプリケーションのオブジェクト モデルにアクセスするには、プロジェクト内に生成されるクラスのメンバを使用します。これらのクラスは、それぞれが Excel または Word のオブジェクト モデルのクラスに対応し、用意されているプロパティ、メソッド、およびイベントはほとんど同じです。たとえば、Word 用のドキュメント レベルのプロジェクトの ThisDocument クラスは、Word オブジェクト モデルの Microsoft.Office.Interop.Word.Document クラスとほとんど同じメンバを提供します。

次のコード例は、Word オブジェクト モデルを使用して Word 用のドキュメント レベルのカスタマイズに含まれるドキュメントを保存する方法を示しています。このコードは ThisDocument クラスから実行することを前提としています。

Me.Save()
this.Save();

同じ操作を ThisDocument クラスの外側から実行するには、Globals オブジェクトを使用して ThisDocument クラスにアクセスします。Globals オブジェクトの詳細については、「Visual Studio Tools for Office プロジェクト内のオブジェクトへのグローバル アクセス」を参照してください。

たとえば、操作ウィンドウの UI に [保存] ボタンを含める場合は、このコードを操作ウィンドウのコードに追加します。

Globals.ThisDocument.Save()
Globals.ThisDocument.Save();

ThisDocument クラスは Microsoft.Office.Tools.Word.Document ホスト項目から派生するため、このコードで呼び出される Save メソッドは、実際は Microsoft.Office.Tools.Word.Document ホスト項目の Save メソッドです。このメソッドは、Word オブジェクト モデルの Microsoft.Office.Interop.Word.Document クラスの Save メソッドに対応します。

Word および Excel のオブジェクト モデルの詳細については、「Word オブジェクト モデルの概要」および「Excel オブジェクト モデルの概要」を参照してください。

ドキュメントへのコントロールの追加

ドキュメントの UI をカスタマイズするには、Windows フォーム コントロールまたはホスト コントロールをドキュメントに追加します。さまざまな種類のコントロールを組み合わせ、コードを記述することによって、コントロールのデータへのバインド、ユーザー情報の収集、およびユーザーの操作への応答を実行できます。

ホスト コントロールは、Word および Excel のオブジェクト モデルに属する一部のオブジェクトを拡張するクラスです。たとえば、Microsoft.Office.Tools.Excel.ListObject ホスト コントロールには、Excel の Microsoft.Office.Interop.Excel.ListObject の機能がすべて用意されています。ただし、Microsoft.Office.Tools.Excel.ListObject ホスト コントロールには追加のイベントやデータ バインディング機能も含まれています。

詳細については、「ホスト項目とホスト コントロールの概要」および「Office ドキュメントでの Windows フォーム コントロールの概要」を参照してください。

VBA とドキュメント レベルのカスタマイズの結合

Visual Studio Tools for Office のドキュメント レベルのカスタマイズに含まれるドキュメントで VBA コードを使用することができます。ドキュメント レベルのプロジェクトでは、ドキュメント内の VBA コードをカスタマイズ アセンブリから呼び出すことができます。2007 Microsoft Office システムのドキュメント レベルのプロジェクトでは、ドキュメント内の VBA コードによってカスタマイズ アセンブリ内のコードを呼び出すことができるようにプロジェクトを構成することも可能です。

詳細については、「VBA とドキュメント レベルのカスタマイズの結合」を参照してください。

サーバー上のドキュメントの管理

Microsoft Office Word または Microsoft Office Excel がインストールされていないサーバー上にあるドキュメント レベルのカスタマイズに対し、さまざまな管理タスクを行うことができます。たとえば、ドキュメントのデータ キャッシュにあるデータへのアクセスおよび変更も可能です。ドキュメントに関連付けられている Visual Studio Tools for Office カスタマイズ アセンブリを管理することもできます。たとえば、アセンブリをプログラムによってドキュメントから削除してカスタマイズ コードが実行されないようにしたり、アセンブリをプログラムによってドキュメントにアタッチしたりすることができます。

詳細については、「ServerDocument クラスによるサーバー上のドキュメントの管理」を参照してください。

Microsoft Office アプリケーションのユーザー インターフェイスのカスタマイズ

ドキュメント レベルのカスタマイズを使用することにより、Word および Excel の UI をカスタマイズできます。

Microsoft Office の 2007 リリースと 2003 リリース

Microsoft Office 2003 および 2007 Microsoft Office system の UI は、次の方法でカスタマイズできます。

2007 リリース

Word 2007 および Excel 2007 の UI は、次の方法でカスタマイズすることもできます。

2003 リリース

Word 2003 および Excel 2003 の UI は、次の方法でカスタマイズすることもできます。

Microsoft Office アプリケーションの UI をカスタマイズする方法の詳細については、「Office UI のカスタマイズ」を参照してください。

参照

処理手順

方法 : カスタム ドキュメント プロパティを作成および変更する

方法 : ドキュメント プロパティの読み込みと書き込みを行う

概念

VBA とドキュメント レベルのカスタマイズの結合

ServerDocument クラスによるサーバー上のドキュメントの管理

ドキュメント レベルのカスタマイズにおけるネイティブな Office オブジェクトからの拡張オブジェクトの取得

その他の技術情報

Office ドキュメントのコントロール