カスタム作業ウィンドウの概要
作業ウィンドウとは、Microsoft Office アプリケーション ウィンドウのいずれかの端に通常ドッキングされているユーザー インターフェイス パネルです。 カスタム作業ウィンドウを使用すると、独自の作業ウィンドウを作成して、ユーザーが使い慣れたインターフェイスを使用してソリューションの機能にアクセスできるようにすることができます。 たとえば、コードを実行してドキュメントを変更したり、データ ソースのデータを表示したりするコントロールをインターフェイスに含めることができます。
対象: このトピックの情報は、Excel 2007 と Excel 2010、InfoPath 2007 と InfoPath 2010、Outlook 2007 と Outlook 2010、PowerPoint 2007 と PowerPoint 2010、および Word 2007 と Word 2010 のアプリケーション レベルのプロジェクトに適用されます。詳細については、「Office アプリケーションおよびプロジェクト タイプ別の使用可能な機能」を参照してください。
注意
カスタム作業ウィンドウは操作ウィンドウとは異なります。 操作ウィンドウは、Microsoft Office Word と Microsoft Office Excel のドキュメント レベルのカスタマイズに含まれます。 詳細については、「操作ウィンドウの概要」を参照してください。
カスタム作業ウィンドウの利点
カスタム作業ウィンドウを使用すると、独自の機能を使い慣れたユーザー インターフェイスに統合できます。 カスタム作業ウィンドウは Visual Studio のツールを使用して簡単に作成できます。
使い慣れたユーザー インターフェイス
Microsoft Office system のアプリケーションのユーザーは、既に Word の [スタイルと書式] などの作業ウィンドウを使い慣れています。 カスタム作業ウィンドウは、Microsoft Office system の他の作業ウィンドウと同様に動作します。 ユーザーは、カスタム作業ウィンドウをアプリケーション ウィンドウの別の端にドッキングしたり、ウィンドウ上の任意の場所にドラッグしたりできます。 複数のカスタム作業ウィンドウを同時に表示するアドインを作成すると、ユーザーはそれぞれの作業ウィンドウを個別に制御できます。
Windows フォームのサポート
Visual Studio の Office 開発ツールを使用して作成するカスタム作業ウィンドウのユーザー インターフェイスは、Windows フォーム コントロールに基づいています。 使い慣れた Windows フォーム デザイナーを使用して、カスタム作業ウィンドウのユーザー インターフェイスをデザインできます。 また、Windows フォームのデータ連結サポートを使用して、データ ソースを作業ウィンドウのコントロールに連結することもできます。
カスタム作業ウィンドウの作成
基本的なカスタム作業ウィンドウは次の 2 つの手順で作成できます。
Windows フォーム コントロールを UserControl オブジェクトに追加して、カスタム作業ウィンドウのユーザー インターフェイスを作成します。
ユーザー コントロールをアドインの CustomTaskPaneCollection オブジェクトに渡して、カスタム作業ウィンドウをインスタンス化します。 このコレクションから返される新しい CustomTaskPane オブジェクトを使用して、作業ウィンドウの外観を変更したり、ユーザー イベントに応答したりできます。
操作手順については、「方法 : カスタム作業ウィンドウをアプリケーションに追加する」を参照してください。
ユーザー インターフェイスの作成
Visual Studio の Office 開発ツールを使用して作成したカスタム作業ウィンドウには、常に UserControl オブジェクトが含まれています。 このユーザー コントロールがカスタム作業ウィンドウのユーザー インターフェイスを提供します。 ユーザー コントロールはデザイン時または実行時に作成できます。 ユーザー コントロールをデザイン時に作成する場合は、Windows フォーム デザイナーを使用して作業ウィンドウのユーザー インターフェイスを構成します。
カスタム作業ウィンドウのインスタンス化
カスタム作業ウィンドウのユーザー インターフェイスを含むユーザー コントロールを作成した後、CustomTaskPane をインスタンス化する必要があります。 それには、Add メソッドを 1 つ呼び出して、アドインの CustomTaskPaneCollection にユーザー コントロールを渡します。 このコレクションは ThisAddIn クラスの CustomTaskPanes フィールドとして公開されます。 次のコード例は、ThisAddIn クラスから実行することを前提としています。
myUserControl1 = New MyUserControl
myCustomTaskPane = Me.CustomTaskPanes.Add(myUserControl1, "My Task Pane")
myCustomTaskPane.Visible = True
myUserControl1 = new MyUserControl();
myCustomTaskPane = this.CustomTaskPanes.Add(myUserControl1, "My Task Pane");
myCustomTaskPane.Visible = true;
Add メソッドは新しい CustomTaskPane オブジェクトを返します。 このオブジェクトを使用して、作業ウィンドウの外観を変更したり、ユーザー イベントに応答したりできます。
複数のウィンドウでの作業ウィンドウの制御
カスタム作業ウィンドウはドキュメント フレーム ウィンドウに関連付けられます。ドキュメント フレーム ウィンドウは、ユーザーに対してドキュメントや項目を表示するウィンドウです。 作業ウィンドウが表示されるのは、関連付けられたウィンドウが表示される場合だけです。
どのウィンドウにカスタム作業ウィンドウが表示されるかを指定するには、作業ウィンドウを作成するときに次の Add メソッド オーバーロードを使用します。
作業ウィンドウをアクティブ ウィンドウに関連付けるには、CustomTaskPaneCollection.Add(UserControl, String) メソッドを使用します。
作業ウィンドウを特定のウィンドウでホストされているドキュメントに関連付けるには、CustomTaskPaneCollection.Add(UserControl, String, Object) メソッドを使用します。
一部の Office アプリケーションには、複数のウィンドウが開いているときに、どの時点で作業ウィンドウを作成または表示するかを示す明示的な命令が必要です。 したがって、作業ウィンドウがアプリケーション内の適切なドキュメントまたは項目で表示されるように、コード内のどの位置でカスタム作業ウィンドウをインスタンス化するかを検討する必要があります。 詳細については、「複数のアプリケーション ウィンドウでカスタム作業ウィンドウを管理する」を参照してください。
作業ウィンドウからのアプリケーションへのアクセス
アプリケーションをユーザー コントロールから自動化する場合は、コード内の Globals.ThisAddIn.Application を使用してオブジェクト モデルに直接アクセスできます。 静的な Globals クラスが ThisAddIn オブジェクトへのアクセスを可能にします。 このオブジェクトの Application フィールドがアプリケーションのオブジェクト モデルへのエントリ ポイントとなります。
ThisAddIn オブジェクトの Application フィールドの詳細については、「アプリケーション レベルのアドインのプログラミング」を参照してください。 カスタム作業ウィンドウからアプリケーションを自動化する方法を示すチュートリアルについては、「チュートリアル : カスタム作業ウィンドウからのアプリケーションの自動化」を参照してください。 Globals クラスの詳細については、「Office プロジェクト内のオブジェクトへのグローバル アクセス」を参照してください。
カスタム作業ウィンドウのユーザー インターフェイスの管理
作業ウィンドウを作成した後で、CustomTaskPane オブジェクトのプロパティとイベントを使用して、作業ウィンドウのユーザー インターフェイスを制御し、ユーザーが作業ウィンドウを変更したときに応答することができます。
カスタム作業ウィンドウの表示
作業ウィンドウは既定で非表示になっています。 作業ウィンドウを表示するには、Visible プロパティを true に設定する必要があります。
ユーザーは、作業ウィンドウの隅にある [閉じる] ボタン (X) をクリックすることにより、いつでも作業ウィンドウを閉じることができます。 ただし、ユーザーが閉じたカスタム作業ウィンドウを再び表示するための既定の方法はありません。 表示する方法を用意しておかないと、カスタム作業ウィンドウを閉じた後に再び表示することができません。
アドインでカスタム作業ウィンドウを作成する場合は、ボタンなどの UI 要素も作成して、ユーザーがクリックすればカスタム作業ウィンドウの表示と非表示を切り替えることができるようにする必要があります。 リボンのカスタマイズをサポートしている Microsoft Office アプリケーションにカスタム作業ウィンドウを作成する場合は、カスタム作業ウィンドウを表示または非表示にするボタンを含むコントロール グループをリボンに追加できます。 その方法を示すチュートリアルについては、「チュートリアル : カスタム作業ウィンドウとリボン ボタンの同期」を参照してください。
リボンのカスタマイズをサポートしていない Microsoft Office アプリケーションにカスタム作業ウィンドウを作成する場合は、カスタム作業ウィンドウを表示または非表示にする CommandBarButton を追加します。
作業ウィンドウの外観の変更
CustomTaskPane オブジェクトのプロパティを使用して、カスタム作業ウィンドウのサイズや場所を制御できます。 カスタム作業ウィンドウに含まれている UserControl オブジェクトのプロパティを使用して、カスタム作業ウィンドウの外観にさまざまな変更を加えることができます。 たとえば、ユーザー コントロールの BackgroundImage プロパティを使用すると、カスタム作業ウィンドウの背景イメージを指定できます。
次の表に、CustomTaskPane プロパティを使用してカスタム作業ウィンドウに加えることのできる変更の内容を示します。
タスク |
プロパティ |
---|---|
作業ウィンドウのサイズを変更する |
|
作業ウィンドウの場所を変更するには |
|
作業ウィンドウを表示または非表示にする |
|
作業ウィンドウの場所をユーザーが変更できないようにする |
カスタム作業ウィンドウのイベントのプログラミング
ユーザーがカスタム作業ウィンドウを変更したときにアドインが応答するようにすることもできます。 たとえば、ユーザーがウィンドウの向きを横から縦に変更した場合に、コントロールを再配置できます。
次の表に、ユーザーがカスタム作業ウィンドウに加えた変更に応答するように処理できるイベントを示します。
タスク |
イベント |
---|---|
ユーザーが作業ウィンドウの場所を変更したときに応答する。 |
|
ユーザーが作業ウィンドウを表示または非表示にしたときに応答する。 |
作業ウィンドウが使用したリソースのクリーンアップ
カスタム作業ウィンドウを作成した場合、CustomTaskPane オブジェクトはアドインが実行されている限りメモリに残っています。 このオブジェクトは、ユーザーが作業ウィンドウの隅にある [閉じる] ボタン (X) をクリックしてもメモリからアンロードされません。
アドインがまだ実行中の状態で、作業ウィンドウが使用していたリソースをクリーンアップするには、Remove メソッドまたは RemoveAt メソッドを使用します。 このメソッドは、指定された CustomTaskPane オブジェクトを CustomTaskPanes コレクションから削除し、このオブジェクトの Dispose() メソッドを呼び出します。
アドインがアンロードされると、Visual Studio Tools for Office Runtime はカスタム作業ウィンドウが使用していたリソースを自動的にクリーンアップします。 プロジェクトの ThisAddIn_Shutdown イベント ハンドラーで Remove メソッドまたは RemoveAt メソッドを呼び出さないでください。 ThisAddIn_Shutdown が呼び出される前に、CustomTaskPane オブジェクトが使用していたリソースが Visual Studio Tools for Office Runtime によってクリーンアップされるため、これらのメソッドは ObjectDisposedException をスローします。 ThisAddIn_Shutdown の詳細については、「Office プロジェクトのイベント」を参照してください。
参照
処理手順
方法 : カスタム作業ウィンドウをアプリケーションに追加する
チュートリアル : カスタム作業ウィンドウからのアプリケーションの自動化
チュートリアル : カスタム作業ウィンドウとリボン ボタンの同期
チュートリアル : Outlook で電子メール メッセージと共にカスタム作業ウィンドウを表示する
方法 : Outlook で電子メール メッセージと共にカスタム作業ウィンドウを表示する