次の方法で共有


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

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

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

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

  • デザイン時のコントロールの追加

  • 実行時のドキュメント レベルのプロジェクトへのコントロールの追加

  • 実行時のアプリケーション レベルのアドインへのコントロールの追加

ビデオへのリンク 関連のビデオ デモについては、「How Do I: Add Controls to a Document Surface at Runtime? (操作方法: 実行時にドキュメントにコントロールを追加する)」を参照してください。

デザイン時のコントロールの追加

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

注意

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

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

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

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

    注意

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

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

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

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

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

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

    注意

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

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

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

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

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

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

    注意

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

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

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

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

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

    注意

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

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

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

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

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

    注意

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

実行時のドキュメント レベルのプロジェクトへのコントロールの追加

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

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

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

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

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

    Private Sub Sheet1_Startup(ByVal sender As Object, ByVal e As System.EventArgs) _
        Handles Me.Startup
    
        Dim salesButton As Microsoft.Office.Tools.Excel.Controls.Button
        salesButton = Me.Controls.AddButton(Me.Range("C5"), "salesButton")
        salesButton.Text = "Calculate Total Sales"
    End Sub
    
    private void Sheet1_Startup(object sender, System.EventArgs e)
    {
        Microsoft.Office.Tools.Excel.Controls.Button salesButton;
        salesButton = this.Controls.AddButton(this.get_Range("C5", missing), "salesButton");
        salesButton.Text = "Calculate Total Sales";
    }
    

実行時のアプリケーション レベルのアドインへのコントロールの追加

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

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

アプリケーション レベルのプロジェクトでホスト項目を生成する方法の詳細については、「アプリケーション レベルのアドインにおける実行時の Word 文書や Excel ブックの拡張」を参照してください。

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

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

    注意

    .NET Framework 4 を対象とするアプリケーション レベルのアドイン プロジェクトで Add<control class> メソッドにアクセスするには、Microsoft.Office.Tools.Excel.v4.0.Utilities.dll アセンブリまたは Microsoft.Office.Tools.Word.v4.0.Utilities.dll アセンブリへの参照を追加する必要があります。

    次のコード例は、Word アドインを使用してアクティブな文書の最初の段落に Button を追加する方法を示します。

    Dim salesButton As Microsoft.Office.Tools.Word.Controls.Button
    
    ' Use the following line of code in projects that target the .NET Framework 4.
    Dim extendedDocument As Document = Globals.Factory.GetVstoObject(Me.Application.ActiveDocument)
    
    ' In projects that target the .NET Framework 3.5, use the following line of code.
    ' Dim extendedDocument As Document = Me.Application.ActiveDocument.GetVstoObject()
    
    extendedDocument.Paragraphs(1).Range.InsertParagraphBefore()
    salesButton = extendedDocument.Controls.AddButton( _
        extendedDocument.Paragraphs(1).Range, 75, 18, "salesButton")
    salesButton.Text = "Calculate Sales"
    
    Microsoft.Office.Tools.Word.Controls.Button salesButton;
    
    // Use the following line of code in projects that target the .NET Framework 4.
    Document extendedDocument = Globals.Factory.GetVstoObject(this.Application.ActiveDocument);
    
    // In projects that target the .NET Framework 3.5, use the following line of code.
    // Document extendedDocument = this.Application.ActiveDocument.GetVstoObject();
    
    extendedDocument.Paragraphs[1].Range.InsertParagraphBefore();
    salesButton = extendedDocument.Controls.AddButton(
        extendedDocument.Paragraphs[1].Range, 75, 18, "salesButton");
    salesButton.Text = "Calculate Sales";
    

参照

処理手順

方法 : ワークシートのセル内のコントロールをサイズ変更する

概念

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

実行時の Office ドキュメントへのコントロールの追加

ホスト項目とホスト コントロールの概要

Office ソリューションの省略可能なパラメーター