次の方法で共有


方法 : Word 文書に Bookmark コントロールを追加する

ドキュメント レベルのプロジェクトでは、デザイン時または実行時にプロジェクトの文書に Bookmark コントロールを追加できます。 アプリケーション レベルのプロジェクトでは、実行時に Bookmark コントロールを任意の開いているドキュメントに追加できます。

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

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

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

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

  • 実行時に Bookmark コントロールをアプリケーション レベルのプロジェクトに追加する

Bookmark コントロールの詳細については、「Bookmark コントロール」を参照してください。

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

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

  • Visual Studio の [ツールボックス] を使用する方法

    ツールボックスから文書へ、Bookmark コントロールをドラッグできます。 既にツールボックスを使用して Windows フォーム コントロールを文書に追加している場合は、この方法を選択できます。

  • Word から行う方法

    ネイティブのブックマークを追加する場合と同じ方法で、文書に Bookmark コントロールを追加できます。 この方法で追加する場合、コントロールの作成時にコントロールの名前を指定できるという利点があります。

  • [データ ソース] ウィンドウから行う方法

    [データ ソース] ウィンドウから文書へ、Bookmark コントロールをドラッグできます。 これは、同時にコントロールをデータにバインドする場合に役立ちます。 Windows フォーム コントロールを追加するのと同じ方法で、[データ ソース] ウィンドウからホスト コントロールを追加できます。 詳細については、「データ連結と Windows フォーム」を参照してください。

注意

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

ツールボックスから文書に Bookmark コントロールを追加するには

  1. ツールボックスを開き、[Word コントロール] タブをクリックします。

  2. Bookmark コントロールを文書にドラッグします。

    [ブックマーク コントロールの追加] ダイアログ ボックスが表示されます。

  3. ブックマークに含めるテキストまたはその他の項目を選択します。

  4. [OK] をクリックします。

    ブックマーク名を既定のままにしない場合は、[プロパティ] ウィンドウで名前を変更します。

Word で Bookmark コントロールを文書に追加するには

  1. Visual Studio デザイナーでホストされている文書で、ブックマークを配置する位置にカーソルを置くか、ブックマークで囲むテキストを選択します。

  2. リボンの [挿入] タブの [リンク][ブックマーク] をクリックします。

  3. [ブックマーク] ダイアログ ボックスで、新しいブックマークの名前を入力し、[追加] をクリックします。

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

プロジェクトの ThisDocument クラスの Controls プロパティのメソッドを使用して、実行時にプログラムによって Bookmark コントロールを文書に追加できます。 2 つのメソッド オーバーロードを使用して、次の方法で Bookmark コントロールを追加できます。

動的に作成した Bookmark コントロールは、ドキュメントを閉じるとドキュメントに保持されません。 ただし、ネイティブな Microsoft.Office.Interop.Word.Bookmark は文書に残ります。 次に文書を開いたときに、ネイティブなブックマークに基づく Bookmark を再作成できます。 詳細については、「実行時の Office ドキュメントへのコントロールの追加」を参照してください。

プログラムによって、文書に Bookmark コントロールを追加するには

  • 文書内の最初の段落に Bookmark コントロールを追加する以下のコードをプロジェクトの ThisDocument_Startup イベント ハンドラーに挿入します。

    Dim firstParagraph As Microsoft.Office.Tools.Word.Bookmark
    firstParagraph = Me.Controls.AddBookmark(Me.Paragraphs(1).Range, "FirstParagraph")
    
    Microsoft.Office.Tools.Word.Bookmark firstParagraph;
    firstParagraph = this.Controls.AddBookmark(this.Paragraphs[1].Range,
        "FirstParagraph");
    

    注意

    既存の Microsoft.Office.Interop.Word.Bookmark から Microsoft.Office.Tools.Word.Bookmark コントロールを作成する場合、AddBookmark メソッドを使用し、既存の Microsoft.Office.Interop.Word.Bookmark を渡します。

実行時に Bookmark コントロールをアプリケーション レベルのプロジェクトに追加する

アプリケーション レベルのアドインを使用することにより、実行時に開いている任意の文書に対して、プログラムで Bookmark コントロールを追加できます。 これを行うには、開いている文書に基づく Document ホスト項目を生成し、このホスト項目の Controls プロパティのメソッドを使用します。 2 つのメソッド オーバーロードを使用して、次の方法で Bookmark コントロールを追加できます。

動的に作成した Bookmark コントロールは、ドキュメントを閉じるとドキュメントに保持されません。 ただし、ネイティブな Microsoft.Office.Interop.Word.Bookmark は文書に残ります。 次に文書を開いたときに、ネイティブなブックマークに基づく Bookmark を再作成できます。 詳細については、「Office ドキュメントでのダイナミック コントロールの永続化」を参照してください。

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

指定した範囲に Bookmark コントロールを追加するには

  • ControlCollection.AddBookmark(Range, String) メソッドを使用して、Bookmark を追加する Range を渡します。

    アクティブ ドキュメントの先頭に新しい Bookmark を追加するコード例を次に示します。 この例を使用するには、Word アドイン プロジェクトの ThisAddIn_Startup イベント ハンドラーからコードを実行します。

    ' 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()
    
    Dim firstParagraph As Bookmark = extendedDocument.Controls.AddBookmark( _
        extendedDocument.Paragraphs(1).Range, "FirstParagraph")
    
    // 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();
    
    Bookmark firstParagraph = extendedDocument.Controls.AddBookmark(
        extendedDocument.Paragraphs[1].Range, "FirstParagraph");
    

ネイティブな Bookmark コントロールに基づく Bookmark コントロールを追加するには

  • ControlCollection.AddBookmark(Bookmark, String) メソッドを使用して、新しい Bookmark の基として使用する既存の Microsoft.Office.Interop.Word.Bookmark を渡します。

    アクティブ ドキュメントの最初の Microsoft.Office.Interop.Word.Bookmark に基づく新しい Bookmark を作成するコード例を次に示します。 この例を使用するには、Word アドイン プロジェクトの ThisAddIn_Startup イベント ハンドラーからコードを実行します。

    If Me.Application.ActiveDocument.Bookmarks.Count > 0 Then
        Dim firstBookmark As Word.Bookmark = Me.Application.ActiveDocument.Bookmarks(1)
    
        ' 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()
    
        Dim vstoBookmark As Bookmark = extendedDocument.Controls.AddBookmark( _
            firstBookmark, "VSTOBookmark")
    End If
    
    if (this.Application.ActiveDocument.Bookmarks.Count > 0)
    {
        object index = 1;
        Word.Bookmark firstBookmark = this.Application.ActiveDocument.Bookmarks.get_Item(ref index);
    
        // 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();
    
        Bookmark vstoBookmark = extendedDocument.Controls.AddBookmark(
                firstBookmark, "VSTOBookmark");
    }
    

参照

処理手順

方法 : Bookmark コントロールのサイズを変更する

概念

拡張オブジェクトによる Word の自動化

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

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

ホスト項目およびホスト コントロールのプログラム上の制限事項

アプリケーション レベルのアドインのプログラミング

ドキュメント レベルのカスタマイズのプログラミング

ホスト コントロールのヘルパー メソッド