次の方法で共有


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

更新 : 2007 年 11 月

対象

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

プロジェクトの種類

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

Microsoft Office のバージョン

  • 2007 Microsoft Office system

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

2007 Microsoft Office system のドキュメント レベルのカスタマイズの一部であるドキュメントまたはブックから、Visual Studio Tools for Office カスタマイズ アセンブリをプログラムによって削除することができます。その後、ドキュメントを開き、内容を表示できますが、ドキュメントに追加されたどのカスタム ユーザー インターフェイス (UI) も表示されません。また、コードも実行されません。

カスタマイズ アセンブリを削除するには、Visual Studio Tools for Office ランタイムによって提供されるいずれかの RemoveCustomization メソッドを使用します。使用するメソッドは、実行時にカスタマイズを削除する (Visual Studio Tools for Office ソリューションでコードを実行する) か、閉じられたドキュメントまたは Microsoft Office がインストールされていないサーバー上にあるドキュメントから削除するかによって異なります。

実行時にカスタマイズ アセンブリを削除するには

閉じられたドキュメントまたはサーバー上にあるドキュメントからカスタマイズ アセンブリを削除するには

  1. Word や Excel を起動しないプロジェクト (コンソール アプリケーションや Windows フォーム アプリケーションなど) を新規に作成します。

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

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

    Imports Microsoft.VisualStudio.Tools.Applications
    
    using Microsoft.VisualStudio.Tools.Applications;
    
  4. ServerDocument クラスの静的な RemoveCustomization メソッドを呼び出し、ソリューション ドキュメントのパスをパラメータに指定します。

    次のコード例では、デスクトップ上にある WordDocument1.docx という名前のドキュメントからカスタマイズを削除することを前提としています。

    Dim documentPath As String = System.Environment.GetFolderPath( _
        Environment.SpecialFolder.Desktop) & "\WordDocument1.docx"
    Dim runtimeVersion As Integer = 0
    
    Try
        runtimeVersion = ServerDocument.GetCustomizationVersion(documentPath)
        If runtimeVersion = 3 Then
            ServerDocument.RemoveCustomization(documentPath)
            System.Windows.Forms.MessageBox.Show("The customization has been removed.")
        End If
    Catch ex As FileNotFoundException
        System.Windows.Forms.MessageBox.Show("The specified document does not exist.")
    Catch ex As IOException
        System.Windows.Forms.MessageBox.Show("The specified document is read-only.")
    Catch ex As InvalidOperationException
        System.Windows.Forms.MessageBox.Show("The customization could not be removed." & _
            vbLf & ex.Message)
    End Try
    
    string documentPath = System.Environment.GetFolderPath(
        Environment.SpecialFolder.Desktop) + @"\WordDocument1.docx";
    int runtimeVersion = 0;
    
    try
    {
        runtimeVersion = ServerDocument.GetCustomizationVersion(documentPath);
    
        if (runtimeVersion == 3)
        {
            ServerDocument.RemoveCustomization(documentPath);
            System.Windows.Forms.MessageBox.Show("The customization has been removed.");
        }
    }
    catch (FileNotFoundException)
    {
        System.Windows.Forms.MessageBox.Show("The specified document does not exist.");
    }
    catch (IOException)
    {
        System.Windows.Forms.MessageBox.Show("The specified document is read-only.");
    }
    catch (InvalidOperationException ex)
    {
        System.Windows.Forms.MessageBox.Show("The customization could not be removed.\n" +
            ex.Message);
    }
    

参照

処理手順

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

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

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

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

概念

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