操作ウィンドウの概要Actions pane overview

操作ウィンドウは、特定の Microsoft Office Word 文書または Microsoft Office Excel ブックに添付された、カスタマイズ可能なドキュメントアクション作業ウィンドウです。An actions pane is a customizable Document Actions task pane that is attached to a specific Microsoft Office Word document or Microsoft Office Excel workbook. 操作ウィンドウは、Office 作業ウィンドウ内で、Excel の [ XML ソース] 作業ウィンドウや Word の [スタイルと書式設定] 作業ウィンドウなどの他の組み込み作業ウィンドウと共にホストされます。The actions pane is hosted inside the Office task pane along with other built-in task panes, such as the XML Source task pane in Excel or the Styles and Formatting task pane in Word. 操作ウィンドウのユーザー インターフェイスは、Windows フォーム コントロールまたは WPF コントロールを使用してデザインできます。You can use Windows Forms controls or WPF controls to design the actions pane user interface.

適用対象: このトピックの情報は、ドキュメントに適用されます-Excel および Word のレベルのプロジェクト。Applies to: The information in this topic applies to document-level projects for Excel and Word. 詳細については、「Office アプリケーションおよびプロジェクトの種類で使用できる機能」を参照してください。For more information, see Features available by Office application and project type.

操作ウィンドウは、Word または Excel のドキュメント レベルのカスタマイズ内でのみ作成できます。You can create an actions pane only in a document-level customization for Word or Excel. VSTO アドイン内に操作ウィンドウを作成することはできません。You cannot create an actions pane in a VSTO Add-in. 詳細については、「Office アプリケーションおよびプロジェクトの種類で使用できる機能」を参照してください。For more information, see Features available by Office application and project type.

Note

カスタム作業ウィンドウは、操作ウィンドウとは異なります。The actions pane differs from custom task panes. カスタム作業ウィンドウは、特定のドキュメントではなく、アプリケーションに関連付けられます。Custom task panes are associated with the application, not a specific document. カスタム作業ウィンドウは、一部の Microsoft Office アプリケーション向けの VSTO アドインで作成できます。You can create custom task panes in VSTO Add-ins for some Microsoft Office applications. 詳細については、「カスタム作業ウィンドウ」を参照してください。For more information, see Custom task panes.

ビデオへのリンク関連のビデオデモについては、操作方法を参照してください。Excel の操作ウィンドウ内での WPF コントロールを使用しますかlink to video For a related video demonstration, see How do I: Use WPF controls inside an Excel actions pane?.

操作ウィンドウを表示するDisplay the actions pane

操作ウィンドウは、ActionsPane クラスによって表されます。The actions pane is represented by the ActionsPane class. ドキュメント レベルのプロジェクトを作成するとき、ThisWorkbook クラス (Excel の場合) または ThisDocument クラス (Word の場合) の ActionsPane フィールドをプロジェクトで使用することで、このクラスのインスタンスをコードで使用できます。When you create a document-level project, an instance of this class is available to your code by using the ActionsPane field of the ThisWorkbook (for Excel) or ThisDocument (for Word) class in your project. 操作ウィンドウを表示するには、ActionsPane フィールドの Controls プロパティに Windows フォーム コントロールを追加します。To display the actions pane, add a Windows Forms control to the Controls property of the ActionsPane field. actions という名前のコントロールを操作ウィンドウに追加するコード例を次に示します。The following code example adds a control named actions to the actions pane.

this.ActionsPane.Controls.Add(actions);
Me.ActionsPane.Controls.Add(actions)

操作ウィンドウは、コントロールを明示的に追加するとすぐに、実行時に表示されます。The actions pane becomes visible at runtime as soon as you explicitly add a control to it. 操作ウィンドウが表示された後は、ユーザーの操作に応じてコントロールを動的に追加または削除できます。After the actions pane is displayed, you can dynamically add or remove controls in response to the user's actions. 通常は、ユーザーが初めてドキュメントを開くときに操作ウィンドウが表示されるように、操作ウィンドウを表示するコードを ThisDocument または ThisWorkbookStartup イベント ハンドラーに追加します。Typically, you add the code to display the actions pane in the Startup event handler of ThisDocument or ThisWorkbook so that the actions pane is visible when the user first opens the document. しかし、ドキュメント内でのユーザーの操作に応じてのみ操作ウィンドウを表示することもできます。However, you might want to display the actions pane only in response to a user's action in the document. たとえば、ドキュメント上のコントロールの Click イベントにコードを追加できます。For example, you might add the code to the Click event of a control on the document.

操作ウィンドウに複数のコントロールを追加するAdd multiple controls to the actions pane

操作ウィンドウに複数のコントロールを追加する場合は、コントロールをユーザーコントロールにグループ化してから、 Controlsプロパティにユーザーコントロールを追加する必要があります。When you add multiple controls to the actions pane, you should group the controls in a user control and then add the user control to the Controls property. このプロセスには、次の手順が含まれます。This process includes the following steps:

  1. 操作ウィンドウコントロールまたはユーザーコントロール項目をプロジェクトに追加して、操作ウィンドウのユーザーインターフェイス (UI) を作成します。Create the user interface (UI) of the actions pane by adding an Actions Pane Control or User Control item to your project. これらのアイテムのどちらにも、カスタム Windows フォーム UserControl クラスが含まれています。Both of these items include a custom Windows Forms UserControl class. 操作ウィンドウコントロールユーザーコントロールの項目は同等です。唯一の違いは、その名前です。The Actions Pane Control and User Control items are equivalent; the only difference is their name.

  2. デザイナーを使用するか、またはコードを記述して、Windows フォーム コントロールを UserControl に追加します。Add Windows Forms controls to the UserControl by using the designer, or by writing code.

    Note

    また、WPF の UserControl を Windows フォーム UserControl に追加することにより、WPF コントロールを操作ウィンドウに追加することもできます。You can also add WPF controls to the actions pane by adding a WPF UserControl to the Windows Forms UserControl. 詳細については、「 Office ソリューションでの WPF コントロールの使用」を参照してください。For more information, see Use WPF controls in Office solutions.

  3. カスタム ユーザー コントロールのインスタンスを、プロジェクトの ThisWorkbook クラス (Excel の場合) または ThisDocument クラス (Word の場合) の ActionsPane フィールドに含まれるコントロールに追加します。Add an instance of the custom user control to the controls that are contained in the ActionsPane field of the ThisWorkbook (for Excel) or ThisDocument (for Word) class in your project.

    このプロセスの詳細を示す例については、「方法:Word 文書または Excel ブックに操作ウィンドウを追加します。For examples that demonstrate this process in more detail, see How to: Add an actions pane to Word documents or Excel workbooks.

操作ウィンドウを非表示にするHide the actions pane

ActionsPane クラスには Hide メソッドと Visible プロパティがありますが、ActionsPane クラス自体のメンバーを使用して、ユーザー インターフェイスから操作ウィンドウを削除することはできません。Although the ActionsPane class has a Hide method and a Visible property, you cannot remove the actions pane from the user interface by using any members of the ActionsPane class itself. メソッドを呼び出すか、 Visibleプロパティをfalseに設定すると、操作ウィンドウ上のコントロールのみが非表示になり、作業ウィンドウは非表示になりません。 HideCalling the Hide method or setting the Visible property to false hides only the controls on the actions pane; it does not hide the task pane.

ソリューションの作業ウィンドウを非表示にするには、いくつかの方法があります。To hide the task pane in your solution, you have several options:

  • Word の場合は、 Visible [ドキュメントアクションMicrosoft.Office.Interop.Word.TaskPane ] 作業ウィンドウを表すオブジェクトのプロパティをfalseに設定します。For Word, set the Visible property of the Microsoft.Office.Interop.Word.TaskPane object that represents the Document Actions task pane to false. 次のコード例は、プロジェクトの ThisDocument クラスから実行することを前提としています。The following code example is intended to be run from the ThisDocument class in your project.

    this.Application.TaskPanes[Word.WdTaskPanes.wdTaskPaneDocumentActions].Visible = false;
    
    Me.Application.TaskPanes(Word.WdTaskPanes.wdTaskPaneDocumentActions).Visible = False
    
  • Excel の場合は、 DisplayDocumentActionTaskPane Applicationオブジェクトのプロパティをfalseに設定します。For Excel, set the DisplayDocumentActionTaskPane property of the Application object to false. 次のコード例は、プロジェクトの ThisWorkbook クラスから実行することを前提としています。The following code example is intended to be run from the ThisWorkbook class in your project.

    this.Application.DisplayDocumentActionTaskPane = false;
    
    Me.Application.DisplayDocumentActionTaskPane = False
    
  • Word または Excel の場合は、作業ウィンドウVisibleを表すコマンドバーのプロパティをfalseに設定することもできます。For Word or Excel, you can alternatively set the Visible property of the command bar that represents the task pane to false. 次のコード例は、プロジェクトの ThisDocument クラスまたは ThisWorkbook から実行することを前提としています。The following code example is intended to be run from the ThisDocument or ThisWorkbook class in your project.

    this.Application.CommandBars["Task Pane"].Visible = false;
    
    Me.Application.CommandBars("Task Pane").Visible = False
    

ドキュメントを開いたときに操作ウィンドウをクリアするClear the actions pane when the document is opened

操作ウィンドウが表示されているときにユーザーがドキュメントを保存すると、[操作] ウィンドウにコントロールが表示されているかどうかにかかわらず、ドキュメントが開かれるたびに操作ウィンドウが表示されます。When a user saves the document while the actions pane is visible, the actions pane is visible every time the document is opened, whether or not the actions pane contains any controls. それをいつ表示するかを制御するには、ThisDocument または ThisWorkbookStartup イベント ハンドラーで ActionsPane フィールドの Clear メソッドを呼び出し、ドキュメントを開いた時点で操作ウィンドウが表示されないようにします。If you want to control when it appears, call the Clear method of the ActionsPane field in the Startup event handler of ThisDocument or ThisWorkbook to ensure that the actions pane is not visible when the document is opened.

操作ウィンドウが閉じられたことを確認するDetermine when the actions pane is closed

操作ウィンドウが閉じられたときに発生するイベントはありません。There is no event that is raised when the actions pane is closed. ActionsPane クラスには VisibleChanged イベントがありますが、このイベントは、エンド ユーザーによって操作ウィンドウが閉じられたときには発生しません。Although the ActionsPane class has a VisibleChanged event, this event is not raised when the end user closes the actions pane. 代わりに、このイベントは、操作ウィンドウのコントロールがメソッドをHide呼び出すか、 Visibleプロパティをfalseに設定することによって非表示にされたときに発生します。Instead, this event is raised when the controls on the actions pane are hidden by calling the Hide method or by setting the Visible property to false.

ユーザーは、操作ウィンドウを閉じたときに、アプリケーションのユーザーインターフェイス (UI) で次のいずれかの手順を実行することによって、もう一度表示できます。When the user closes the actions pane, the user can display it again by performing one of the following procedures in the user interface (UI) of the application.

Word または Excel の UI を使用して操作ウィンドウを表示するにはTo display the actions pane by using the UI of Word or Excel
  1. リボンの [表示] タブをクリックします。On the Ribbon, click the View tab.

  2. [表示/非表示] グループで、[ドキュメントアクション] トグルボタンをクリックします。In the Show/Hide group, click the Document Actions toggle button.

プログラム操作ウィンドウのイベントProgram actions pane events

操作ウィンドウに複数のユーザー コントロールを追加し、ドキュメント上のイベントに応答するコードを作成して、ユーザー コントロールを表示したり非表示にしたりすることができます。You can add multiple user controls to the actions pane and then write code to respond to events on the document by showing and hiding the user controls. XML スキーマ要素をドキュメントにマップした場合は、XML 要素の 1 つにカーソルが置かれた時点で、操作ウィンドウに特定のユーザー コントロールを表示するようにできます。If you map XML schema elements to your document, you can show certain user controls in the actions pane whenever the insertion point is inside one of the XML elements. 詳細については、「方法 :スキーマを Visual Studio内の Word 文書にマップし、 次の操作を行います。スキーマを Visual Studio内のワークシートにマップします。For more information, see How to: Map schemas to Word documents inside Visual Studio and How to: Map schemas to worksheets inside Visual Studio.

また、ホスト コントロール、アプリケーション、またはドキュメント イベントなど、任意のオブジェクトのイベントに応答するコードを作成することもできます。You can also write code to respond to the events of any object, including host control, application, or document events. 詳細については、「チュートリアル:NamedRange コントロールのイベントに対してプログラムを実行します。For more information, see Walkthrough: Program against events of a NamedRange control.

操作ウィンドウのコントロールにデータをバインドするBind data to controls on the actions pane

操作ウィンドウのコントロールは、Windows フォームのコントロールと同じデータ バインディング機能を備えています。The controls on the actions pane have the same data binding capabilities as controls on Windows Forms. データセット、型指定されたデータセット、XML などのデータ ソースに、コントロールをバインドできます。You can bind the controls to data sources such as data sets, typed data sets, and XML. 詳細については、「データバインディングと Windows フォーム」を参照してください。For more information, see Data binding and Windows Forms.

操作ウィンドウのコントロールとドキュメントのコントロールは、同じデータセットにバインドできます。You can bind controls on the actions pane and controls on the document to the same dataset. たとえば、操作ウィンドウのコントロールとワークシートのコントロール間でマスター/詳細関係を作成できます。For example, you can create a master/detail relation between the controls on the actions pane and the controls on the worksheet. 詳細については、「チュートリアル:Excel の操作ウィンドウ上のコントロールにデータをバインドします。For more information, see Walkthrough: Bind data to controls on an Excel actions pane.

操作ウィンドウコントロールでのデータの検証Validate data in actions pane controls

操作ウィンドウ上のコントロールの Validating イベント ハンドラーでメッセージ ボックスを表示する場合、フォーカスがコントロールからメッセージ ボックスに移った時点で 2 度目のイベントが発生することがあります。If you display a message box in the Validating event handler of a control on the actions pane, the event might be raised a second time when focus moves from the control to the message box. この問題を回避するには、ErrorProvider コントロールを使用して検証エラー メッセージを表示するようにします。To prevent this issue, use an ErrorProvider control to display any validation error messages.

ユーザーコントロールの積み重ね順User control stacking order

複数のユーザー コントロールを使用している場合は、垂直方向または水平方向のどちらにドッキングされるかにかかわらず、操作ウィンドウにユーザー コントロールを正しく積み重ねるコードを作成できます。If you are using multiple user controls, you can write code to properly stack the user controls on the actions pane whether it is docked vertically or horizontally. 操作ウィンドウにユーザー コントロールを積み重ねる順序は、StackOrder プロパティの StackStyle 列挙体を使用して設定できます。You can set the stacking order of the user controls on the actions pane by using the StackStyle enumeration of the StackOrder property. 詳細については、「方法 :操作ウィンドウのコントロールのレイアウトを管理します。For more information, see How to: Manage control layout on actions panes.

StackOrder プロパティでは、次の StackStyle 列挙値を使用できます。The StackOrder property can take the following StackStyle enumeration values.

積み重ねのスタイルStacking style 定義Definition
FromBottomFromBottom 操作ウィンドウの下から積み重ねます。Stack from the bottom of the actions pane.
左に移動FromLeft 操作ウィンドウの左から積み重ねます。Stack from the left of the actions pane.
FromRightFromRight 操作ウィンドウの右から積み重ねます。Stack from the right of the actions pane.
FromTopFromTop 操作ウィンドウの上から積み重ねます。Stack from the top of the actions pane.
なしNone 積み重ね順を定義しません。順序は開発者が制御します。No stacking order defined; order is controlled by the developer.

次のコードでは、操作ウィンドウの上からユーザー コントロールをスタックするように StackOrder プロパティを設定します。The following code sets the StackOrder property to stack the user controls from the top of the actions pane.

this.ActionsPane.StackOrder = Microsoft.Office.Tools.StackStyle.FromTop;
Me.ActionsPane.StackOrder = Microsoft.Office.Tools.StackStyle.FromTop

アンカーコントロールAnchor controls

ユーザーが実行時に操作ウィンドウのサイズを変更した場合、コントロールは操作ウィンドウでサイズを変更できます。If the user resizes the actions pane at runtime, the controls can resize with the actions pane. Windows フォーム コントロールの Anchor プロパティを使用すると、コントロールを操作ウィンドウに固定できます。You can use the Anchor property of a Windows Forms control to anchor controls to the actions pane. 同じように、Windows フォーム コントロールをユーザー コントロールに固定することもできます。You can also anchor the Windows Forms controls onto the user control in the same manner. 詳細については、「方法 :Windows フォーム上のコントロールを固定します。For more information, see How to: Anchor controls on Windows Forms.

操作ウィンドウのサイズを変更するResize the actions pane

ActionsPane は作業ウィンドウに埋め込まれているため、ActionsPane のサイズを直接変更することはできません。You cannot directly change the size of an ActionsPane because the ActionsPane is embedded in the task pane. ただし、作業ウィンドウを表す Microsoft.Office.Core.CommandBarWidth プロパティを設定すると、プログラムによって作業ウィンドウの幅を変更できます。However, you can programmatically change the width of the task pane by setting the Width property of the Microsoft.Office.Core.CommandBar that represents the task pane. 作業ウィンドウの高さは、作業ウィンドウが水平にドッキングされている場合、または浮動している場合に変更できます。You can change the height of the task pane if it is docked horizontally or is floating.

ユーザーがニーズに最も合った作業ウィンドウのサイズを選択できるようにするため、プログラムによって作業ウィンドウのサイズを変更することはお勧めしません。Programmatically resizing the task pane is not recommended because the user should be able to select the task pane size that best suits their needs. ただし、作業ウィンドウの幅を変更する必要がある場合には、次のコードを使用してこのタスクを実現できます。However, if you must resize the width of the task pane, you could use the following code to achieve this task.

this.CommandBars["Task Pane"].Width = 200;
Me.CommandBars("Task Pane").Width = 200

操作ウィンドウの位置を変更するReposition the actions pane

ActionsPane は作業ウィンドウに埋め込まれているため、その位置を直接変更することはできません。You cannot directly reposition the ActionsPane because it is embedded in the task pane. ただし、作業ウィンドウを表す Microsoft.Office.Core.CommandBarPosition プロパティを設定すると、プログラムによって作業ウィンドウを移動できます。However, you can programmatically move the task pane by setting the Position property of the Microsoft.Office.Core.CommandBar that represents the task pane.

ユーザーは、必要に応じて画面上の作業ウィンドウの位置を選択できる必要があるため、プログラムで作業ウィンドウを再配置することは推奨されません。Programmatically repositioning the task pane is not recommended because the user should be able to choose the task pane position on the screen that best suits his or her needs. ただし、作業ウィンドウを特定の位置に移動する必要がある場合は、次のコードを使用してこのタスクを実現できます。However, if you must move the task pane to a particular position, you could use the following code to achieve this task.

this.CommandBars["Task Pane"].Position =
    Microsoft.Office.Core.MsoBarPosition.msoBarLeft;
Me.CommandBars("Task Pane").Position = _
    Microsoft.Office.Core.MsoBarPosition.msoBarLeft

Note

エンド ユーザーは、作業ウィンドウの位置を手動でいつでも変更できます。End users can manually reposition the task pane at any time. プログラムで指定した位置に作業ウィンドウを常にドッキングしておくことはできません。There is no way to ensure that the task pane will remain docked at the position you indicate programmatically. ただし、向きの変更を確認し、操作ウィンドウ上のコントロールが正しい方向で積み重ねられるようにすることは可能です。However, you can check for orientation changes and ensure that the controls on the actions pane are stacked in the correct direction. 詳細については、「方法 :操作ウィンドウのコントロールのレイアウトを管理します。For more information, see How to: Manage control layout on actions panes.

オブジェクトが作業Leftウィンドウに埋めActionsPane込まれているためTop 、のプロパティおよびプロパティを設定しても、その位置は変更されActionsPaneません。Setting the Top and Left properties of the ActionsPane doesn't change its position because the ActionsPane object is embedded in the task pane.

作業ウィンドウがドッキングされていない場合、作業ウィンドウを表す Microsoft.Office.Core.CommandBarTop プロパティと Left プロパティを設定できます。If the task pane is not docked, you can set the Top and Left properties of the Microsoft.Office.Core.CommandBar that represents the task pane. 次のコードでは、ドッキングが解除された作業ウィンドウをドキュメントの左上隅に移動します。The following code moves an undocked task pane to the upper-left corner of the document.

if (this.CommandBars["Task Pane"].Position == 
    Microsoft.Office.Core.MsoBarPosition.msoBarFloating)
{
    this.CommandBars["Task Pane"].Top = 0;
    this.CommandBars["Task Pane"].Left = 0;
}
If Me.CommandBars("Task Pane").Position = _
    Microsoft.Office.Core.MsoBarPosition.msoBarFloating Then

    Me.CommandBars("Task Pane").Top = 0
    Me.CommandBars("Task Pane").Left = 0

End If

関連項目See also