Office ドキュメントの概要での Windows フォーム コントロールWindows Forms controls on Office documents overview

Windows フォーム コントロールは、データを入力または操作するときにユーザーが取り扱うオブジェクトです。Windows Forms controls are objects that users can interact with to enter or manipulate data. Microsoft Office Excel および Microsoft Office Word のドキュメント レベルのプロジェクトで、プロジェクトで、デザイン時にドキュメントまたはブックに Windows フォーム コントロールを追加できますかプログラムで、実行時にこれらのコントロールを追加することができます。In document-level projects for Microsoft Office Excel and Microsoft Office Word, you can add Windows Forms controls to the document or workbook in your project at design time, or you can programmatically add these controls at runtime. プログラムで、任意の開いているドキュメントまたは VSTO アドインで実行時にワークシートに、Excel または Word のこれらのコントロールを追加することができます。You can programmatically add these controls to any open document or worksheet at runtime in a VSTO Add-in for Excel or Word.

詳細については、「方法 :Office ドキュメントに Windows フォーム コントロールを追加します。For more information, see How to: Add Windows Forms controls to Office documents.

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

Windows フォーム コントロールを使用します。Use Windows Forms controls

Windows フォーム コントロールをドキュメントに、あるいは操作ウィンドウ、カスタム作業ウィンドウ、Windows フォームなどのカスタマイズ可能なユーザー インターフェイス (UI) 要素に追加できます。You can add Windows Forms controls to documents and to customizable user interface (UI) elements, including actions panes, custom task panes, and Windows Forms. Windows フォーム コントロールの動作は、ドキュメント上でも上述のその他の UI 要素上でも通常は同じですが、いくつかの相違点が存在します。Windows Forms controls generally have the same behavior on documents as on these other UI elements, but some differences do exist. 詳しくは、次を参照してください。の制限事項の Windows フォーム コントロールの Office ドキュメントします。For information, see Limitations of Windows Forms controls on Office documents.

Windows フォーム コントロールをドキュメントに追加するか、その他の UI 要素に追加するかは、いくつかの要因を考慮して決定します。The decision whether to add Windows Forms controls to a document or some other UI element depends on several factors. ソリューションの UI を設計する場合は、次の表の説明に従って Windows フォーム コントロールの使用をご検討ください。When designing the UI of your solution, consider the uses of Windows Forms controls as described in the following table.

ドキュメント上On a document.

  • 常時コントロールを表示する場合。When you want to display the controls 100% of the time.

  • ユーザーにドキュメントに直接データを入力させる場合 (たとえば、編集サーフェスがロックされているフォーム ベースのドキュメント)。When you want users to enter data directly in the document, for example, in forms-based documents where the editing surface is locked.

  • コントロールをドキュメントのデータに沿って表示する場合。When you want the controls to display in line with the data in the document. たとえば、ボタンをリスト オブジェクトの各行に追加する場合、リストの各項目に沿って一直線に配置します。For example, if you are adding buttons to each row of a list object, you would want them in line with each list item.

操作ウィンドウまたはカスタム作業ウィンドウ上On the actions pane or a custom task pane.

  • コンテキスト情報をユーザーに提供する場合。When you want to provide contextual information to the user.

  • ドキュメントにクエリのコントロールやデータではなく、結果のみを表示する場合。When you want only the results to appear in the document, and not the query controls and data.

  • コントロールがドキュメントに印刷されないようにする場合。When you want to ensure that the controls are not printed with the document.

  • コントロールがドキュメントの表示を妨げないようにする場合。When you want to ensure that controls do not interfere with the view of the document.

Windows フォーム上On a Windows Form.

  • UI のサイズを制御する場合。When you want to control the size of the UI.

  • ユーザーがコントロールを非表示にしたり、削除したりできないようにする場合。When you want to prevent users from hiding or deleting the controls.

  • ユーザーから入力を取得し、入力を受信するまではユーザーがドキュメントで何も処理できないようにする場合。When you want to get input from the user, and prevent the user from doing anything in the document until the input is received.

Windows フォーム コントロールをプログラムで追加します。Add Windows Forms controls programmatically

Word 文書や実行時に Excel ワークシートには、Windows フォーム コントロールを追加できます。You can add Windows Forms controls to Word documents and Excel worksheets at runtime. Visual Studio Tools for Office RuntimeVisual Studio Tools for Office runtime は最も一般的な Windows フォーム コントロールを追加するためのヘルパー メソッドを提供します。The Visual Studio Tools for Office RuntimeVisual Studio Tools for Office runtime provides helper methods for adding the most common Windows Forms controls. これらのヘルパー メソッドを使用すると、コントロールを Office ドキュメントにすばやく追加して、Windows フォーム コントロールの機能とこれらのコントロールの Office 関連機能とを組み合わせたものにアクセスできます。These helper methods enable you to quickly add controls to your Office document and access the combined Windows Forms control functionality and Office-related functionality of these controls.

詳細については、次を参照してください。実行時に Office ドキュメントにコントロールを追加します。For more information, see Add controls to Office documents at runtime.

ドキュメント レベルのプロジェクトでの Windows フォーム コントロールを使用します。Use Windows Forms controls in document-level projects

ドキュメントでの Windows フォーム コントロールの使用方法のいくつかは、ドキュメント レベルのプロジェクトに固有です。これらにより、Visual Studio デザイナーを使用してドキュメントの UI をデザインできます。Some aspects of using Windows Forms controls on documents are unique to document-level projects, which enable you to design the UI of your document by using the Visual Studio designer.

カスタム ユーザー コントロールを作成します。Create custom user controls

ユーザー コントロールをプロジェクトに追加してから、それを ツールボックスに追加します。You can add a user control to your project and then add it to the Toolbox. ドキュメントに Windows フォーム コントロールを追加するのと同じ方法で、ドキュメントにユーザー コントロールを直接ドラッグできます。You can then drag the user control directly to your document in the same way you would add a Windows Forms control to your document. ユーザー コントロールを作成するときには、以下の点にご注意ください。There are some things to keep in mind when you create user controls:

  • sealed ユーザー コントロールは作成しないでください。Do not create a sealed user control. ドキュメントにコントロールをドラッグすると、Visual Studio はユーザー コントロールから派生するラッパー クラスを生成して、そのクラスを拡張したり、ドキュメントでの使用をサポートしたりします。When you drag the control to your document, Visual Studio generates a wrapper class derived from the user control to extend it and support its use on the document. ユーザー コントロールが sealedである場合、Visual Studio はラッパー クラスを生成することができません。If the user control is sealed, Visual Studio cannot generate the wrapper class.

  • ユーザー コントロールでは、 ComVisibleAttribute 属性を true」を参照してください。User controls must have the ComVisibleAttribute attribute set to true. Office プロジェクト内で作成されたユーザー コントロールでは、この属性は既定で true に設定されますが、プロジェクト外部のユーザー コントロールでは、この属性は trueに設定されていない場合があります。User controls created inside an Office project have this attribute set to true by default, but user controls that are part of outside projects might not have this attribute set to true.

  • ユーザー コントロールをドキュメントに追加した後は、 UserControl クラスの名前を変更したり、プロジェクトから削除したりしないでください。After you have added a user control to the document, do not rename or delete the UserControl class from the project. ユーザー コントロールの名前を変更する必要がある場合は、ドキュメントからまず削除し、名前を変更した後でもう一度追加する必要があります。If you need to change the name of a user control you must first delete it from the document, and then add it again after the name has been changed.

デザイン時にコントロールを配置します。Arrange controls at design time

デザイン時に Word および Excel のドキュメントに複数のコントロールを追加する場合、Visual Studio の Microsoft Office Word および Microsoft Office Excel ツール バーを使用して、選んだすべてのコントロールの配置をすばやく設定することができます。If you add multiple controls to your Word and Excel documents at design time, you can quickly set the alignment of all of the selected controls by using the Microsoft Office Word and Microsoft Office Excel toolbars in Visual Studio. これらのツール バーは、ドキュメントまたはワークシートがデザイナーで開かれている場合にのみ使用できます。These toolbars are available only when a document or worksheet is open in the designer.

デザイナーで複数のコントロールを選ぶ場合、コントロールを配置するために、それらのツール バーにある以下のボタンを使用できます。When you select multiple controls in the designer, you can use the following buttons on these toolbars to arrange the controls:

  • [左揃え]Align Lefts

  • [中央揃え]Align Centers

  • [右揃え]Align Rights

  • [上揃え]Align Tops

  • [上下中央揃え]Align Middles

  • [下揃え]Align Bottoms

  • 左右の間隔を均等にするMake Horizontal Spacing Equal

  • 上下の間隔を均等にするMake Vertical Spacing Equal


Word プロジェクトでは、選んだコントロールが行内にない場合にのみ、これらのボタンが有効になります。In Word projects, these buttons are enabled only if the selected controls are not in line with text. 既定では、デザイン時にドキュメントに追加したコントロールは、行内にあります。By default, controls that you add to the document at design time are in line with text.

古いデータが読み込み中に Excel ブックに表示するを防ぐPrevent old data from appearing in Excel workbooks during loading

デザイン時にドキュメントやワークシートに Windows フォーム コントロールを追加すると、ユーザーがドキュメントを閉じても、コントロールはドキュメント内に残ります。When you add Windows Forms controls to documents or worksheets at design time, the controls remain in the document when the user closes the document. デザイン時に追加されたコントロールは、 スタティック コントロールとも呼ばれます。Controls added at design time are also called static controls.

スタティック コントロールが格納されている Excel ブックを開くと、カスタマイズ コードが実行されて実際のコントロールが読み込まれるまで、ブックでは ActiveX コントロールにコントロールのビットマップが表示されます。When an Excel workbook that contains static controls is opened, the workbook displays a bitmap of the control in an ActiveX control until the customization code runs and loads the actual control. Excel はこのビットマップを作成し、ブックが保存されるたびに、このブックにそのビットマップを格納します。Excel creates this bitmap and stores it in the workbook whenever the workbook is saved. ビットマップには、ブックを最後に保存したときの状態でコントロールが表示され、コントロールに表示されていたすべてのデータも一緒に含められます。The bitmap shows the control as it appeared the last time the workbook was saved, including any data that the control was displaying. Windows フォーム コントロールとビットマップを含んだ ActiveX コントロールの詳細については、次を参照してください。の制限事項の Windows フォーム コントロールの Office ドキュメントします。For more information about the ActiveX control that contains Windows Forms controls and bitmaps, see Limitations of Windows Forms controls on Office documents.

ユーザーがデザイン モードでブックを開くとなど特定の条件では、コードは読み込まれず、ビットマップのみが表示されます。In certain conditions, the code does not load and only the bitmap is displayed, such as when the user opens the workbook in design mode. また、 Visual Studio Tools for Office RuntimeVisual Studio Tools for Office runtime がインストールされていないコンピューターでユーザーがブックを開く場合、コントロールを読み込むためのカスタマイズは実行できず、コントロールのビットマップのみが表示されます。Also, if the user opens the workbook on a computer that does not have the Visual Studio Tools for Office RuntimeVisual Studio Tools for Office runtime installed, the customization cannot run to load the controls and therefore only the bitmap of the control is visible. 個人情報が誤って公開されないようにするため、ブックを保存して別のユーザーに送信する前に、必ず個人情報をブックのコントロールから削除する必要があります。You should always remove personal information from controls on workbooks before saving the workbook and sending it to another user to ensure that your personal information is not accidentally disclosed.

Excel ワークシートのセルのサイズに一致するコントロールのサイズMatch control size to cell size on an Excel worksheet

親のセルのサイズが変更されたときに、自動的にサイズ変更されるようにコントロールを設定することができます。You can set the control to be resized automatically when the size of the parent cell is changed. 詳細については、「方法 :ワークシートのセル内のコントロールをサイズ変更します。For more information, see How to: Resize controls within worksheet cells.

すべてのワークシートによって共有されるコンポーネントを追加します。Add components that are shared by all worksheets

DataSetなどすべてのワークシート間で共有するコンポーネントを、ワークシートではなくブックのデザイナーに追加することができます。You can add components that you want to share among all worksheets, such as a DataSet, to the Workbook Designer instead of to the worksheets. このコンポーネントは、コンポーネント トレイに表示されます。The component will appear on the component tray.

Excel ワークシート上のコントロールを埋め込むための数式Formula for embedding controls on an Excel worksheet

Excel 内でコントロールを選択すると、 数式バー に " =EMBED("WinForms.Control.Host","")" と表示されます。When you select a control in Excel, you will see =EMBED("WinForms.Control.Host","") in the Formula Bar. このテキストは必要なので、削除しないでください。This text is necessary and should not be deleted.

Word 文書上のコントロールのレイアウト スタイルLayout style of controls on a Word document

Visual Studio デザイナーを使用してコントロールをドキュメント レベルのプロジェクトの Word 文書に追加する場合、コントロールは行内に追加されます。When you add a control to the Word document in a document-level project by using the Visual Studio designer, the control is added in line with text. コントロールのレイアウト スタイルを変更するには、コントロールを右クリックし、 [コントロールの書式設定] をクリックします。To change the layout style of the control, right-click the control and then click Format Control. [オブジェクトの書式設定] ダイアログ ボックスの [レイアウト] ページで折り返しのスタイルを選びます。Select a wrapping style on the Layout page of the Format Object dialog box.

さまざまなを使用して、新しいコントロールのレイアウト スタイルを指定するには実行時に Word 文書にコントロールを追加するときにAdd <コントロール クラス> のメソッドのオーバー ロード、ControlCollectionクラス。When you add a control to a Word document at runtime, you can specify the layout style of the new control by using different Add<control class> method overloads of the ControlCollection class:

  • 行内のコントロールを追加するには、コントロールの場所を指定する Range を受け取るオーバーロードを使用します。To add the control in line with text, use an overload that accepts a Range that specifies the location of the control.

  • 固定されていない図形としてコントロールを追加するには、コントロールの左と上の座標を受け入れるオーバーロードを使用します。To add the control as a floating shape, use an overload that accepts the left and top coordinates of the control.

    詳細については、次を参照してください。実行時に Office ドキュメントにコントロールを追加します。For more information, see Add controls to Office documents at runtime.

    Visual Studio デザイナーで Word テンプレートを開く場合、Visual Studio でテンプレートが 標準 表示で開かれるために、テンプレートのインラインでないコントロールを表示できない可能性があります。If you open a Word template in the Visual Studio designer, non-inline controls on the template might not be visible because Visual Studio opens the template in Normal view. コントロールを表示するには、表示を 印刷レイアウトに変更します。To view the controls, change the view to Print Layout.

ドキュメント本体外部コントロールControls outside the main document body

Windows フォーム コントロールは、ヘッダーまたはフッター内、あるいはサブドキュメント内ではサポートされません。Windows Forms controls are not supported inside of a header or footer, or within a subdocument.

デザイン時にコンポーネントを追加します。Add components at design time

特定のコントロールやコンポーネントは、ドキュメントに表示されずに、コンポーネント トレイに表示されます。Certain controls or components are not visible on the document and are instead displayed in a component tray. Visual Studio では、各ドキュメント ウィンドウに対して 1 つのコンポーネント トレイが提供されます。Visual Studio provides a component tray for each document window. コンポーネント トレイは、コンポーネントがドキュメントに存在する場合にのみ画面に表示されます。The component tray appears on the screen only if components exist on the document.

関連項目See also