次の方法で共有


Office ドキュメントの Windows フォーム コントロールの概要

Windows フォーム コントロールは、ユーザーが操作してデータを入力または操作できるオブジェクトです。 Microsoft Office Excel および Microsoft Office Word のドキュメント レベルのプロジェクトでは、デザイン時に Windows フォーム コントロールをプロジェクト内のドキュメントまたはブックに追加することも、実行時にプログラムでこれらのコントロールを追加することもできます。 Excel または Word 用 VSTO アドインでは、実行時に開いている任意のドキュメントまたはワークシートにこれらのコントロールをプログラムで追加できます。

詳細については、「 方法: Windows フォーム コントロールを Office ドキュメントに追加する」を参照してください

適用対象: このトピックの情報は、Excel および Word のドキュメント レベルのプロジェクトと VSTO アドイン プロジェクトに適用されます。 詳細については、「 Office アプリケーションとプロジェクトの種類で使用できる機能」を参照してください。

Windows フォーム コントロールを使用する

Windows フォーム コントロールは、ドキュメントや、操作ウィンドウ、カスタム作業ウィンドウ、Windows フォームなどのカスタマイズ可能なユーザー インターフェイス (UI) 要素に追加できます。 一般に、Windows フォーム コントロールは、ドキュメントに対してこれらの他の UI 要素と同じ動作をしますが、いくつかの違いがあります。 詳細については、「 Office ドキュメントの Windows フォーム コントロールの制限事項」を参照してください

Windows フォーム コントロールをドキュメントまたはその他の UI 要素に追加するかどうかの決定は、いくつかの要因によって異なります。 ソリューションの UI を設計するときは、次の表に示すように Windows フォーム コントロールの使用を検討してください。

ドキュメントの場合。

  • コントロールを常時表示する場合。

  • 編集画面がロックされているフォーム ベースのドキュメントなど、ユーザーがドキュメントに直接データを入力する場合。

  • ドキュメント内のデータに合わせてコントロールを表示する場合。 たとえば、リスト オブジェクトの各行にボタンを追加する場合は、各リスト アイテムに合わせてボタンを配置する必要があります。

アクション ウィンドウまたはカスタムタスク ウィンドウ。

  • ユーザーにコンテキスト情報を提供する場合。

  • クエリ コントロールとデータではなく、ドキュメントに結果のみを表示する場合。

  • コントロールが文書と共に印刷されないようにする場合。

  • コントロールがドキュメントのビューに干渉しないようにする場合。

Windows フォームの場合。

  • UI のサイズを制御する場合。

  • ユーザーがコントロールを非表示または削除できないようにする場合。

  • ユーザーから入力を取得し、入力を受け取るまでユーザーがドキュメント内で何も行わないようにする場合。

プログラムによる Windows フォーム コントロールの追加

Windows フォーム コントロールは、実行時に Word 文書や Excel ワークシートに追加できます。 Visual Studio Tools for Office ランタイムには、最も一般的な Windows フォーム コントロールを追加するためのヘルパー メソッドが用意されています。 これらのヘルパー メソッドを使用すると、Office ドキュメントにコントロールをすばやく追加し、これらのコントロールの Windows フォーム コントロール機能と Office 関連の機能を組み合わせた機能にアクセスできます。

詳細については、「 実行時に Office ドキュメントにコントロールを追加する」を参照してください。

ドキュメント レベルのプロジェクトで Windows フォーム コントロールを使用する

ドキュメントで Windows フォーム コントロールを使用する一部の側面は、ドキュメント レベルのプロジェクトに固有であり、Visual Studio デザイナーを使用してドキュメントの UI を設計できます。

カスタム ユーザー コントロールを作成する

ユーザー コントロールをプロジェクトに追加し、ツールボックスに追加 できます。 その後、Windows フォーム コントロールをドキュメントに追加するのと同じ方法で、ユーザー コントロールをドキュメントに直接ドラッグできます。 ユーザー コントロールを作成するときは、次の点に注意する必要があります。

  • 封印されたユーザー コントロールを作成しないでください。 コントロールをドキュメントにドラッグすると、Visual Studio はユーザー コントロールから派生したラッパー クラスを生成して拡張し、ドキュメントでの使用をサポートします。 ユーザー コントロールが シールされている場合、Visual Studio はラッパー クラスを生成できません。

  • ユーザー コントロールには、 ComVisibleAttribute 属性を true に設定する必要があります。 Office プロジェクト内で作成されたユーザー コントロールでは、この属性が既定で true に設定されていますが、外部プロジェクトの一部であるユーザー コントロールでは、この属性が true に設定されていない可能性があります。

  • ドキュメントにユーザー コントロールを追加した後は、 UserControl クラスの名前を変更したり、プロジェクトから削除したりしないでください。 ユーザー コントロールの名前を変更する必要がある場合は、最初にドキュメントから削除してから、名前が変更された後にもう一度追加する必要があります。

デザイン時にコントロールを配置する

デザイン時に Word および Excel 文書に複数のコントロールを追加する場合は、Visual Studio の Microsoft Office Word および Microsoft Office Excel ツール バーを使用して、選択したすべてのコントロールの配置をすばやく設定できます。 これらのツール バーは、デザイナーでドキュメントまたはワークシートを開いている場合にのみ使用できます。

デザイナーで複数のコントロールを選択すると、これらのツール バーの次のボタンを使用してコントロールを配置できます。

  • 左揃え

  • 中央揃え

  • 権限の整列

  • 上揃え

  • 中央揃え

  • 下揃え

  • 水平方向の間隔を等しくする

  • 垂直方向の間隔を等しくする

Word プロジェクトでは、これらのボタンは、選択したコントロールがテキストと一緒に並っていない場合にのみ有効になります。 既定では、デザイン時にドキュメントに追加するコントロールはテキストと一緒に並びます。

読み込み中に古いデータが Excel ブックに表示されないようにする

デザイン時に Windows フォーム コントロールをドキュメントまたはワークシートに追加すると、ユーザーがドキュメントを閉じると、コントロールはドキュメントに残ります。 デザイン時に追加されたコントロールは、 静的コントロールとも呼ばれます。

静的コントロールを含む Excel ブックを開くと、カスタマイズ コードが実行され、実際のコントロールが読み込まれるまで、ブックは ActiveX コントロールにコントロールのビットマップを表示します。 Excel では、このビットマップが作成され、ブックが保存されるたびにブックに格納されます。 ビットマップは、ブックを最後に保存したときのコントロールの表示状態(コントロールが表示していたデータを含む)を示しています。 Windows フォーム コントロールとビットマップを含む ActiveX コントロールの詳細については、「 Office ドキュメントでの Windows フォーム コントロールの制限事項」を参照してください。

特定の状況では、コードは読み込まず、ユーザーがブックをデザイン モードで開いた場合など、ビットマップのみが表示されます。 また、Visual Studio Tools for Office ランタイムがインストールされていないコンピューターでブックを開いた場合、カスタマイズを実行してコントロールを読み込むことができず、コントロールのビットマップのみが表示されます。 ブックを保存して別のユーザーに送信する前に、ブックのコントロールから個人情報を常に削除して、個人情報が誤って開示されないようにする必要があります。

Excel ワークシートのコントロール サイズとセル サイズの一致

親セルのサイズが変更されたときに、コントロールのサイズを自動的に変更するように設定できます。 詳細については、「 方法: ワークシートのセル内のコントロールのサイズを変更する」を参照してください。

すべてのワークシートで共有されるコンポーネントを追加する

DataSetなど、すべてのワークシート間で共有するコンポーネントを、ワークシートではなくブック デザイナーに追加できます。 コンポーネントがコンポーネント トレイに表示されます。

Excel ワークシートにコントロールを埋め込むための数式

Excel でコントロールを選択すると、数式バー=EMBED("WinForms.Control.Host",") が表示されます。 このテキストは必須であり、削除しないでください。

Word 文書のコントロールのレイアウト スタイル

Visual Studio デザイナーを使用して文書レベルのプロジェクトの Word 文書にコントロールを追加すると、テキストに合わせてコントロールが追加されます。 コントロールのレイアウト スタイルを変更するには、コントロールを右クリックし、[ コントロールの書式設定] をクリックします。 [オブジェクトの書式設定] ダイアログ ボックスの [レイアウト] ページで折り返しスタイルを選択します。

実行時に Word 文書にコントロールを追加する場合は、Add クラスの異なる <>ControlCollectionメソッド オーバーロードを使用して、新しいコントロールのレイアウト スタイルを指定できます。

  • テキストに合わせてコントロールを追加するには、コントロールの場所を指定する Range を受け入れるオーバーロードを使用します。

  • コントロールを浮動図形として追加するには、コントロールの左座標と上座標を受け取るオーバーロードを使用します。

    詳細については、「 実行時に Office ドキュメントにコントロールを追加する」を参照してください。

    Visual Studio デザイナーで Word テンプレートを開くと、Visual Studio が 標準 ビューでテンプレートを開くので、テンプレートの非インライン コントロールが表示されないことがあります。 コントロールを表示するには、ビューを 印刷レイアウトに変更します。

メイン ドキュメント本文の外側にあるコントロール

Windows フォーム コントロールは、ヘッダーまたはフッター内、またはサブ文書内ではサポートされていません。

デザイン時にコンポーネントを追加する

特定のコントロールまたはコンポーネントはドキュメントに表示されず、代わりにコンポーネント トレイに表示されます。 Visual Studio には、ドキュメント ウィンドウごとにコンポーネント トレイが用意されています。 コンポーネント トレイは、ドキュメントにコンポーネントが存在する場合にのみ画面に表示されます。