重要
Office 2024 以降、アクション機能は Microsoft Word から廃止されました。 この機能は、次の Office リリースの Microsoft Word でのみ使用できます。
- Microsoft 365
- Office LTSC プロフェッショナル プラス 2021
- Office LTSC スタンダード 2021
- Office Professional Plus 2016、2019
- Office Standard 2016、2019
操作ウィンドウは、特定の Microsoft Office Word 文書または Microsoft Office Excel ブックに添付された、カスタマイズ可能な ドキュメント 操作 作業ウィンドウです。 操作ウィンドウは、Excel の [XML ソース] 作業ウィンドウや Word の [スタイルと書式設定] 作業ウィンドウなど、他の組み込みの作業ウィンドウと共に Office 作業ウィンドウ内でホストされます。 Windows フォーム コントロールまたは WPF コントロールを使用して、操作ウィンドウのユーザー インターフェイスを設計できます。
適用対象: このトピックの情報は、Excel および Word のドキュメント レベルのプロジェクトに適用されます。 詳細については、「Office アプリケーションで使用できる機能とプロジェクトの種類を参照してください。
操作ウィンドウは、Word または Excel のドキュメント レベルのカスタマイズでのみ作成できます。 VSTO アドインで操作ウィンドウを作成することはできません。 詳細については、「Office アプリケーションで使用できる機能とプロジェクトの種類を参照してください。
注
操作ウィンドウは、カスタム作業ウィンドウとは異なります。 カスタム作業ウィンドウは、特定のドキュメントではなく、アプリケーションに関連付けられます。 一部の Microsoft Office アプリケーションの VSTO アドインでカスタム作業ウィンドウを作成できます。 詳細については、「カスタム作業ウィンドウの」を参照してください。
操作ウィンドウを表示する
操作ウィンドウは、ActionsPane クラスによって表されます。 ドキュメント レベルのプロジェクトを作成する場合、このクラスのインスタンスは、プロジェクトの ActionsPane (Excel の場合) または ThisWorkbook (Word) クラスの ThisDocument フィールドを使用してコードで使用できます。 操作ウィンドウを表示するには、Controls フィールドの ActionsPane プロパティに Windows フォーム コントロールを追加します。 次のコード例では、操作ウィンドウに actions という名前のコントロールを追加します。
操作ウィンドウは、コントロールを明示的に追加するとすぐに実行時に表示されます。 操作ウィンドウが表示されたら、ユーザーの操作に応じてコントロールを動的に追加または削除できます。 通常は、Startup または ThisDocument の ThisWorkbook イベント ハンドラーに操作ウィンドウを表示するコードを追加して、ユーザーが最初にドキュメントを開いたときに操作ウィンドウが表示されるようにします。 ただし、ドキュメント内のユーザーの操作に応じてのみ、操作ウィンドウを表示したい場合があります。 たとえば、ドキュメント上のコントロールの Click イベントにコードを追加できます。
操作ウィンドウに複数のコントロールを追加する
操作ウィンドウに複数のコントロールを追加する場合は、ユーザー コントロール内のコントロールをグループ化し、ユーザー コントロールを Controls プロパティに追加する必要があります。 このプロセスには、次の手順が含まれます。
操作ウィンドウのユーザー インターフェイス (UI) を作成するには、プロジェクトに 操作ウィンドウ コントロール または ユーザー コントロール 項目を追加します。 これらの項目には、どちらもカスタム Windows フォーム UserControl クラスが含まれています。 操作ウィンドウ コントロールの と ユーザー コントロールの 項目は同等です。唯一の違いは、彼らの名前です。
デザイナーを使用するか、コードを記述して、Windows フォーム コントロールを UserControl に追加します。
注
また、WINDOWS フォーム UserControlに WPF UserControl を追加することで、操作ウィンドウに WPF コントロールを追加することもできます。 詳細については、「Office ソリューションで WPF コントロールを使用する」を参照してください。
カスタム ユーザー コントロールのインスタンスを、プロジェクトの
ActionsPane(Excel の場合) またはThisWorkbook(Word) クラスのThisDocumentフィールドに含まれるコントロールに追加します。このプロセスの詳細を示す例については、「方法: 操作ウィンドウを Word 文書または Excel ブックに追加する」を参照してください。
操作ウィンドウを非表示にする
ActionsPane クラスには Hide メソッドと Visible プロパティがありますが、ActionsPane クラス自体のメンバーを使用して、ユーザー インターフェイスから操作ウィンドウを削除することはできません。 Hide メソッドを呼び出すか、Visible プロパティを false に設定すると、操作ウィンドウ上にあるコントロールだけが非表示になり、作業ウィンドウは非表示になりません。
ソリューションの作業ウィンドウを非表示にするには、いくつかのオプションがあります。
Word の場合は、[ドキュメント アクション] 作業ウィンドウを表す Visible オブジェクトの TaskPane プロパティを false 設定します。 次のコード例は、プロジェクトの
ThisDocumentクラスから実行することを目的としています。Excel の場合、DisplayDocumentActionTaskPane オブジェクトの Application プロパティを false に設定します。 次のコード例は、プロジェクトの
ThisWorkbookクラスから実行することを目的としています。Word または Excel の場合は、作業ウィンドウを表すコマンド バーの Visible プロパティを false 設定することもできます。 次のコード例は、プロジェクト内の
ThisDocumentまたはThisWorkbookクラスから実行することを目的としています。
ドキュメントを開いたときに操作ウィンドウをクリアする
操作ウィンドウが表示されているときにユーザーがドキュメントを保存すると、操作ウィンドウにコントロールが含まれているかどうかに関係なく、ドキュメントが開かれるたびに操作ウィンドウが表示されます。 表示されるタイミングを制御する場合は、Clear または ActionsPane の Startup イベント ハンドラーの ThisDocument フィールドの ThisWorkbook メソッドを呼び出して、ドキュメントを開いたときに操作ウィンドウが表示されないようにします。
操作ウィンドウを閉じるタイミングを決定する
操作ウィンドウが閉じられたときに発生するイベントはありません。 ActionsPane クラスには VisibleChanged イベントがありますが、エンド ユーザーが操作ウィンドウを閉じると、このイベントは発生しません。 代わりに、このイベントは、Hide メソッドを呼び出すか、Visible プロパティを false 設定することによって、操作ウィンドウのコントロールが非表示の場合に発生します。
ユーザーが操作ウィンドウを閉じると、ユーザーはアプリケーションのユーザー インターフェイス (UI) で次のいずれかの手順を実行して、操作ウィンドウを再度表示できます。
Word または Excel の UI を使用して操作ウィンドウを表示するには
リボンの [表示] タブをクリックします。
[表示/非表示] グループで、[ドキュメント アクション] トグルボタンをクリックします。
プログラム操作ウィンドウのイベント
操作ウィンドウに複数のユーザー コントロールを追加し、ユーザー コントロールを表示および非表示にすることで、ドキュメント上のイベントに応答するコードを記述できます。 XML スキーマ要素をドキュメントにマップする場合、挿入ポイントが XML 要素の 1 つ内にあるときは常に、操作ウィンドウに特定のユーザー コントロールを表示できます。 詳細については、「方法: Visual Studio 内の Word 文書にスキーマをマップする」および「方法: Visual Studio内のワークシートにスキーマをマップする」を参照してください。
ホスト コントロール、アプリケーション、ドキュメント イベントなど、任意のオブジェクトのイベントに応答するコードを記述することもできます。 詳細については、「チュートリアル: NamedRange コントロールのイベントに対するプログラミング」を参照してください。
操作ウィンドウのコントロールにデータをバインドする
操作ウィンドウのコントロールには、Windows フォームのコントロールと同じデータ バインディング機能があります。 コントロールは、データ セット、型指定されたデータ セット、XML などのデータ ソースにバインドできます。 詳細については、「データ バインディングと Windows フォーム」を参照してください。
操作ウィンドウのコントロールとドキュメント上のコントロールを同じデータセットにバインドできます。 たとえば、操作ウィンドウのコントロールとワークシート上のコントロールの間にマスター/詳細関係を作成できます。 詳細については、「チュートリアル: Excel の操作ウィンドウコントロールにデータをバインドする」を参照してください。
操作ウィンドウ コントロールのデータを検証する
操作ウィンドウのコントロールの Validating イベント ハンドラーにメッセージ ボックスを表示すると、コントロールからメッセージ ボックスにフォーカスが移動したときに、イベントが 2 回目に発生する可能性があります。 この問題を回避するには、ErrorProvider コントロールを使用して検証エラー メッセージを表示します。
ユーザー コントロールの重なり順序
複数のユーザー コントロールを使用している場合は、垂直または水平方向にドッキングされているかどうかにかかわらず、操作ウィンドウでユーザー コントロールを適切にスタックするコードを記述できます。 StackStyle プロパティの StackOrder 列挙を使用して、操作ウィンドウでユーザー コントロールのスタック順序を設定できます。 詳細については、「方法: 操作ウィンドウのコントロール レイアウト管理する」を参照してください。
StackOrder プロパティは、次の StackStyle 列挙値を受け取ることができます。
| 積み重ねのスタイル | 定義 |
|---|---|
| ボトムから | 操作ウィンドウの下から積み重ねます。 |
| 左から | 操作ウィンドウの左側からスタックします。 |
| フロムライト | 操作ウィンドウの右側からスタックします。 |
| フロムトップ | 操作ウィンドウの上部からスタックします。 |
| なし | 積み重ね順序が定義されていません。順序は開発者によって制御されます。 |
次のコードでは、操作ウィンドウの上部からユーザー コントロールをスタックするように StackOrder プロパティを設定します。
コントロールを固定する
実行時にユーザーが操作ウィンドウのサイズを変更すると、操作ウィンドウでコントロールのサイズを変更できます。 Windows フォーム コントロールの Anchor プロパティを使用して、コントロールを操作ウィンドウに固定できます。 同様に、Windows フォーム コントロールをユーザー コントロールに固定することもできます。 詳細については、「方法: Windows フォームにコントロールを固定する」を参照してください。
操作ウィンドウのサイズを変更する
ActionsPane が作業ウィンドウに埋め込まれているため、ActionsPane のサイズを直接変更することはできません。 ただし、作業ウィンドウを表す Width の CommandBar プロパティを設定することで、作業ウィンドウの幅をプログラムで変更できます。 作業ウィンドウが水平方向にドッキングされているか、浮動している場合は、作業ウィンドウの高さを変更できます。
プログラムを使用して作業ウィンドウのサイズを変更することはお勧めしません。ユーザーはニーズに最も適した作業ウィンドウ サイズを選択できる必要があるためです。 ただし、作業ウィンドウの幅のサイズを変更する必要がある場合は、次のコードを使用してこのタスクを実行できます。
操作ウィンドウの位置を変更する
作業ウィンドウに埋め込まれているため、ActionsPane の位置を直接変更することはできません。 ただし、作業ウィンドウを表す Position の CommandBar プロパティを設定することで、作業ウィンドウをプログラムで移動できます。
プログラムを使用して作業ウィンドウの位置を変更することはお勧めしません。ユーザーは、自分のニーズに最も適した画面上の作業ウィンドウの位置を選択できる必要があるためです。 ただし、作業ウィンドウを特定の位置に移動する必要がある場合は、次のコードを使用してこのタスクを実行できます。
注
エンド ユーザーは、いつでも作業ウィンドウの位置を手動で変更できます。 プログラムで指定した位置に作業ウィンドウがドッキングされたままになるようにする方法はありません。 ただし、方向の変更を確認し、操作ウィンドウのコントロールが正しい方向に積み重なっていることを確認できます。 詳細については、「方法: 操作ウィンドウのコントロール レイアウト管理する」を参照してください。
Top オブジェクトが作業ウィンドウに埋め込まれているため、Left の ActionsPane プロパティと ActionsPane プロパティを設定しても、その位置は変更されません。
作業ウィンドウがドッキングされていない場合は、作業ウィンドウを表す Top の Left プロパティと CommandBar プロパティを設定できます。 次のコードは、ドッキングされていないタスク ペインを文書の左上隅に移動します。
if (this.CommandBars["Task Pane"].Position ==
Microsoft.Office.Core.MsoBarPosition.msoBarFloating)
{
this.CommandBars["Task Pane"].Top = 0;
this.CommandBars["Task Pane"].Left = 0;
}
関連コンテンツ
- Office ソリューションで WPF コントロールを使用する
- Office UI のカスタマイズ
- Office プロジェクトのオブジェクトへのグローバル アクセス
- 方法: 操作ウィンドウを Word 文書または Excel ブックに追加する
- チュートリアル: 操作ウィンドウからドキュメントにテキストを挿入する
- チュートリアル: Word 操作ウィンドウのコントロールにデータをバインドする
- チュートリアル: Excel 操作ウィンドウのコントロールにデータをバインドする
- 方法: 操作ウィンドウのコントロール レイアウトを管理する
- チュートリアル: 操作ウィンドウからドキュメントにテキストを挿入する