Share via


方法 : マネージ コード拡張機能をドキュメントに追加する (2003 システム)

更新 : 2007 年 11 月

対象

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

プロジェクトの種類

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

Microsoft Office のバージョン

  • Microsoft Office 2003

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

Visual Studio Tools for Office ソリューション アセンブリを既存の Microsoft Office Word 2003 文書または Microsoft Office Excel 2003 ブックに追加できます。文書またはブックには、Visual Studio Tools for Office でサポートされている任意のファイル形式を使用できます。詳細については、「ドキュメント レベルのカスタマイズのアーキテクチャ」を参照してください。

Visual Studio Tools for Office カスタマイズが含まれていないドキュメントにソリューション アセンブリを追加すると、Visual Studio Tools for Office ランタイムによってドキュメント内に実行時のストレージ コントロールが自動的に作成されます。詳細については、「実行時のストレージ コントロールの概要」を参照してください。

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

指定されたドキュメントにソリューション アセンブリで予期されているコントロールが含まれていない場合、ユーザーがドキュメントを開いたときにアセンブリが読み込まれません。

ソリューション アセンブリをドキュメントに追加するには、次の 2 とおりの方法があります。

  • ドキュメント自体の中で、手動でカスタム ドキュメント プロパティを設定します。

  • ServerDocument クラスを使用してプログラムでアセンブリを追加します。

カスタム ドキュメント プロパティの使用

_AssemblyName および _AssemblyLocation というカスタム ドキュメント プロパティを手動で追加することで、Word 文書または Excel ブックに Visual Studio Tools for Office ソリューション アセンブリを追加できます。詳細については、「カスタム ドキュメント プロパティの概要」を参照してください。

次の手順では、既にソリューション アセンブリが配置されており、ソリューションが配置マニフェストを使用していることを前提としています。詳細については、「ドキュメント レベルのカスタマイズの配置 (2003 システム)」を参照してください。

カスタム ドキュメント プロパティを設定することによってソリューション アセンブリを追加するには

  1. Word 文書または Excel ブックを開きます。

  2. [ファイル] メニューの [プロパティ] クリックし、[ユーザー設定] タブをクリックします。

  3. _AssemblyName プロパティを設定します。

    1. _AssemblyName が [プロパティ] ボックスに表示された場合は、_AssemblyName を選択し、[値] ボックスにアスタリスク (*) を入力します。

    2. _AssemblyName がボックスに表示されない場合は、[プロパティ名] ボックスに「_AssemblyName」と入力し、[値] ボックスにアスタリスク (*) を入力して、[追加] をクリックします。

  4. _AssemblyLocation プロパティを設定します。

    1. _AssemblyLocation が [プロパティ] ボックスに表示された場合は、_AssemblyLocation を選択し、[値] ボックスに配置マニフェストの完全パスを入力します。

    2. _AssemblyLocation がボックスに表示されない場合は、[プロパティ名] ボックスに「_AssemblyLocation」と入力し、[値] ボックスに配置マニフェストの完全パスを入力して、[追加] をクリックします。

    配置マニフェストの場所は、ディスク パス (C:\deploy\Document1.application)、ファイル共有 (\\server\Document1.application)、Web サイト (https://www.contoso.com/Document1.application) のいずれでもかまいません。

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

    カスタム ドキュメント プロパティには、255 文字の値を格納できます。マニフェストのパスが 255 文字を超える場合は、_AssemblyLocation0 というプロパティを作成し、このプロパティをパスの最初の 255 文字に設定します。次に、_AssemblyLocation1 というプロパティを作成し、このプロパティをマニフェスト パスの残りの文字に設定します。

  5. [OK] をクリックし、ドキュメントを保存して閉じます。

    次にドキュメントを開いて保存したときに、Visual Studio Tools for Office ランタイムによってソリューション アセンブリがドキュメントに追加され、必要に応じて実行時のストレージ コントロールが作成されます。また Visual Studio Tools for Office ランタイムは、カスタム ドキュメント プロパティである _AssemblyLocation の値を実行時のストレージ コントロールの GUID に設定します。詳細については、「実行時のストレージ コントロールの概要」を参照してください。

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

    ドキュメントは、Visual Studio Tools for Office ランタイムがインストールされているコンピュータ上で開き、保存する必要があります。詳細については、「方法 : Visual Studio Tools for Office ランタイムをインストールする」を参照してください。 

ServerDocument クラスの使用

ServerDocument クラスの AddCustomization メソッドを使用することで、Word 文書または Excel ブックに Visual Studio Tools for Office ソリューション アセンブリを追加できます。この場合、ServerDocument クラスを使用するコードを、Visual Studio Tools for Office ソリューションではなく、Windows フォーム プロジェクトなどの新しいプロジェクト内に配置する必要があります。さらに、アセンブリの追加先のドキュメントを閉じる必要があると共に、そのドキュメントを Word (Word 文書を使用する場合) または Excel (Excel ブックを使用する場合) がインストールされたコンピュータに配置する必要があります。

次の手順では、既にソリューション アセンブリが配置されており、ソリューションが配置マニフェストを使用していることを前提としています。詳細については、「ドキュメント レベルのカスタマイズの配置 (2003 システム)」を参照してください。

ServerDocument クラスを使用してソリューション アセンブリをドキュメントに追加するには

  1. 新しい Windows フォーム プロジェクトを作成します。

  2. プロジェクトに Microsoft.VisualStudio.Tools.Applications.Runtime.dll アセンブリへの参照を追加します。

  3. ランタイムの Imports ステートメントまたは using ステートメントを、コード ファイルの先頭に追加します。

    Imports Microsoft.VisualStudio.Tools.Applications.Runtime
    
    using Microsoft.VisualStudio.Tools.Applications.Runtime;
    
  4. ServerDocument クラスの静的メソッドである AddCustomization を呼び出し、パラメータにソリューション ドキュメントのパス、アセンブリ名、および配置マニフェストのパスを指定します。次のコードでは、C:\WordDocument1 フォルダにある WordDocument1.doc という名前の Word 文書にアセンブリを追加すること、およびアセンブリと配置マニフェストがネットワーク共有の \\deployserver\WordDocument1\ に存在することを前提としています。

    Private Sub AddNewCustomization()
    
        Dim fileName As String = "C:\WordDocument1\WordDocument1.doc"
    
        If Not ServerDocument.IsCustomized(fileName) Then
    
            Dim assemblyName As String = "\\deployserver\WordDocument1\WordDocument1.dll"
            Dim manifestPath As String = "\\deployserver\WordDocument1\WordDocument1.application"
            Dim applicationVersion As String = "1.0.0.0"
    
            ServerDocument.AddCustomization( _
                fileName, assemblyName, manifestPath, applicationVersion, False)
    
        Else
            System.Windows.Forms.MessageBox.Show( _
                "The specified document is already customized.")
        End If
    End Sub
    
    private void AddNewCustomization()
    {
        string fileName = @"C:\WordDocument1\WordDocument1.doc";
    
        if (!ServerDocument.IsCustomized(fileName))
        {
            string assemblyName = @"\\deployserver\WordDocument1\WordDocument1.dll";
            string manifestPath = @"\\deployserver\WordDocument1\WordDocument1.application";
            string applicationVersion = "1.0.0.0";
    
            ServerDocument.AddCustomization(
                fileName, assemblyName, manifestPath, applicationVersion, false);
        }
        else
        {
            System.Windows.Forms.MessageBox.Show(
                "The specified document is already customized.");
        }
    }
    

    Visual Studio Tools for Office ランタイムによって、ソリューション アセンブリがドキュメントに追加され、必要に応じて実行時のストレージ コントロールが作成されます。詳細については、「実行時のストレージ コントロールの概要」を参照してください。

参照

処理手順

方法 : ServerDocument クラスの両方のバージョンを使用するコードを記述する

方法 : マネージ コード拡張機能をドキュメントから削除する (2003 システム)

方法 : マネージ コード拡張機能をドキュメントから削除する (2007 システム)

方法 : マネージ コード拡張機能をドキュメントに追加する (2007 システム)

概念

ServerDocument クラスによるサーバー上のドキュメントの管理

Office ソリューションにおけるアプリケーション マニフェストと配置マニフェスト

実行時のストレージ コントロールの概要