Share via


Office ドキュメントにWindows フォーム コントロールを追加する

Windows フォーム コントロールは、デザイン時にドキュメント レベルのプロジェクトの Microsoft Office Excel および Microsoft Office Word のドキュメントに追加できます。 実行時には、ドキュメントレベルのカスタマイズと VSTO アドインにコントロールを追加できます。たとえば、ワークシートに ComboBox コントロールを追加して、ユーザーがオプションの一覧から選択できるようにすることもできます。

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

このトピックでは、次のタスクについて説明します。

デザイン時にコントロールを追加する

デザイン時にドキュメント レベルのプロジェクトの文書に Windows フォーム コントロールを追加する方法はいくつかあります。

Note

次の手順で参照している Visual Studio ユーザー インターフェイス要素の一部は、お使いのコンピューターでは名前や場所が異なる場合があります。 これらの要素は、使用している Visual Studio のエディションや独自の設定によって決まります。 詳細については、「Visual Studio IDE のカスタマイズ」を参照してください。

Windows フォーム コントロールをドキュメントにドラッグするには

  1. Visual Studio で Excel ブック プロジェクトまたは Word 文書プロジェクトを作成するかまたは開き、ドキュメントがデザイナーに表示されるようにします。 プロジェクトの作成について詳しくは、「方法: Visual Studio で Office プロジェクトを作成する」をご覧ください。

  2. ツールボックス[コモン コントロール] タブで、追加するコントロールをクリックし、ドキュメントまでドラッグします。

    Note

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

Windows フォーム コントロールをドキュメントに描画するには

  1. Visual Studio で Excel ブック プロジェクトまたは Word 文書プロジェクトを作成するかまたは開き、ドキュメントがデザイナーに表示されるようにします。 プロジェクトの作成について詳しくは、「方法: Visual Studio で Office プロジェクトを作成する」をご覧ください。

  2. ツールボックス[コモン コントロール] タブで、追加するコントロールをクリックします。

  3. ドキュメント上で、コントロールの左上隅となる位置をクリックし、コントロールの右下隅となる位置までドラッグします。

    指定したドキュメントの位置に、指定したサイズのコントロールが追加されます。

    Note

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

シングルクリックで Windows フォーム コントロールをドキュメントに追加するには

  1. Visual Studio で Excel ブック プロジェクトまたは Word 文書プロジェクトを作成するかまたは開き、ドキュメントがデザイナーに表示されるようにします。 プロジェクトの作成について詳しくは、「方法: Visual Studio で Office プロジェクトを作成する」をご覧ください。

  2. ツールボックス[コモン コントロール] タブで、追加するコントロールをクリックします

  3. ドキュメント上で、コントロールを追加する位置をクリックします。

    コントロールが既定のサイズでドキュメントに追加されます。

    Note

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

ダブルクリックで Windows フォーム コントロールをドキュメントに追加するには

  1. Visual Studio で Excel ブック プロジェクトまたは Word 文書プロジェクトを作成するかまたは開き、ドキュメントがデザイナーに表示されるようにします。 プロジェクトの作成について詳しくは、「方法: Visual Studio で Office プロジェクトを作成する」をご覧ください。

  2. ツールボックス[コモン コントロール] タブで、追加するコントロールをダブルクリックします。

    コントロールは、ドキュメントまたはアクティブなペインの中央に追加されます。

    Note

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

Enter キーを押して Windows フォーム コントロールをドキュメントに追加するには

  1. Visual Studio で Excel ブック プロジェクトまたは Word 文書プロジェクトを作成するかまたは開き、ドキュメントがデザイナーに表示されるようにします。 プロジェクトの作成について詳しくは、「方法: Visual Studio で Office プロジェクトを作成する」をご覧ください。

  2. ツールボックス[コモン コントロール] タブで、追加するコントロールをクリックし、Enter キーを押します。

    コントロールは、ドキュメントまたはアクティブなペインの中央に追加されます。

    Note

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

ドキュメント レベルのプロジェクトで実行時にコントロールを追加する

実行時にWindows フォーム コントロールをプログラムでドキュメントに追加できます。 Word では、ThisDocument クラスの Controls プロパティのメソッドを使用します。 Excel では、Sheetn クラスの Controls プロパティのメソッドを使用します。 各メソッドにはいくつかのオーバーロードがあり、それらを使用してさまざまな方法でコントロールの場所を指定できます。

実行時にWindows フォーム コントロールをドキュメントに追加すると、ドキュメントが閉じられると、コントロールはドキュメントに保持されません。 次にドキュメントを開くときに、コントロールを再作成できます。 詳細については、「実行時に Office 文書にコントロールを追加する」を参照してください。

実行時にWindows フォーム コントロールを追加するには

  1. 名前が Add<control class> (control class は、AddButton などの追加する Windows フォーム コントロールのクラス名) のメソッドを使用します。

    次のコード例は、Excel のドキュメント レベルのプロジェクトで、Sheet1 のセル C5Button を追加する方法を示したものです。

    private void Sheet1_Startup(object sender, System.EventArgs e)
    {
        Microsoft.Office.Tools.Excel.Controls.Button salesButton;
        salesButton = this.Controls.AddButton(this.get_Range("C5"), "salesButton");
        salesButton.Text = "Calculate Total Sales";
    }
    

VSTO アドインで実行時にコントロールを追加する

Windows フォーム コントロールは、実行時に開いている任意のドキュメントにプログラムで追加できます。 まず、開いているドキュメントかワークシートに基づいたホスト項目を生成します。 次に、Word では、新しいホスト項目の Controls プロパティのメソッドを使用します。 Excel では、新しいホスト項目の Controls プロパティのメソッドを使用します。 各メソッドにはいくつかのオーバーロードがあり、それらを使用してさまざまな方法でコントロールの場所を指定できます。

実行時にWindows フォーム コントロールをドキュメントに追加すると、ドキュメントが閉じられると、コントロールはドキュメントに保持されません。 次にドキュメントを開くときに、コントロールを再作成できます。 詳細については、「実行時に Office 文書にコントロールを追加する」を参照してください。

VSTO アドイン プロジェクトでのホスト項目の生成に関する詳細については、「実行時に VSTO アドインで Word 文書と Excel ブックを拡張する」を参照してください。

実行時にWindows フォーム コントロールを追加するには

  1. 名前が Add<control class> (control class は、AddButton などの追加する Windows フォーム コントロールのクラス名) のメソッドを使用します。

    Note

    .NET Framework 4 以降を対象とする VSTO アドイン プロジェクトでは、Microsoft.Office.Tools.Excel.v4.0.Utilities.dll または Microsoft.Office.Tools.Word.v4.0.Utilities.dll アセンブリへの参照を先に追加する必要があります。Add<control class> メソッドへのアクセスは、その後で可能になります。

    次のコード例で、Word VSTO アドインを使用して作業中のドキュメントの最初の段落に Button を追加する方法を示します。

    Microsoft.Office.Tools.Word.Controls.Button salesButton;
    
    Document extendedDocument = Globals.Factory.GetVstoObject(this.Application.ActiveDocument);
    
    
    extendedDocument.Paragraphs[1].Range.InsertParagraphBefore();
    salesButton = extendedDocument.Controls.AddButton(
        extendedDocument.Paragraphs[1].Range, 75, 18, "salesButton");
    salesButton.Text = "Calculate Sales";