次の方法で共有


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

更新 : 2008 年 7 月

対象

このトピックの情報は、指定された Visual Studio Tools for Office プロジェクトおよび Microsoft Office のバージョンにのみ適用されます。

ドキュメント レベルのプロジェクト

  • Excel 2003

  • Excel 2007

  • Word 2003

  • Word 2007

アプリケーション レベルのプロジェクト

  • Excel 2007

  • Word 2007

詳細については、「アプリケーションおよびプロジェクトの種類別の使用可能な機能」を参照してください。

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

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

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

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

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

また、Bookmark コントロールや NamedRange コントロールなどのホスト コントロールも Office ドキュメントに追加できます。詳細については、「Word ホスト コントロール」および「Excel のホスト コントロール」を参照してください。

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

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

b86d6w07.alert_note(ja-jp,VS.90).gifメモ :

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

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

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

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

    b86d6w07.alert_note(ja-jp,VS.90).gifメモ :

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

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

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

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

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

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

    b86d6w07.alert_note(ja-jp,VS.90).gifメモ :

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

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

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

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

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

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

    b86d6w07.alert_note(ja-jp,VS.90).gifメモ :

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

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

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

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

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

    b86d6w07.alert_note(ja-jp,VS.90).gifメモ :

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

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

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

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

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

    b86d6w07.alert_note(ja-jp,VS.90).gifメモ :

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

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

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

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

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

  • 名前が Add<control class> (control class は追加する Windows フォーム コントロールのクラス名であり、AddButton などとなります) である Microsoft.Office.Tools.Word.ControlCollection メソッド (Word プロジェクトの場合) または Microsoft.Office.Tools.Excel.ControlCollection メソッド (Excel プロジェクトの場合) を使用します。

    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 などとなります) である Microsoft.Office.Tools.Word.ControlCollection メソッド (Word プロジェクトの場合) または Microsoft.Office.Tools.Excel.ControlCollection メソッド (Excel プロジェクトの場合) を使用します。

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

    Dim salesButton As Microsoft.Office.Tools.Word.Controls.Button
    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;
    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 ソリューションの省略可能なパラメータについて

履歴の変更

日付

履歴

理由

2008 年 7 月

アプリケーション レベルのアドインのドキュメントへのコントロールの追加に関する手順を追加

SP1 機能変更