次の方法で共有


ドキュメントからマネージド コード拡張機能を削除する

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

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

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

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

  1. カスタマイズ コードで、RemoveCustomization メソッド (Word の場合) または RemoveCustomization メソッド (Excel の場合) を呼び出します。 このメソッドは、カスタマイズが不要になった後で呼び出すようにしてください。

    コード内のどこでこのメソッドを呼び出すかは、カスタマイズの使用方法によって異なります。 たとえば、(カスタマイズではなく) ドキュメントそのものだけを必要とするクライアントにドキュメントを送信するユーザーが、その準備を終えた後にカスタマイズの機能を使用する場合は、何らかの UI を提供して、ユーザーがそれをクリックしたときに RemoveCustomization が呼び出されるようにすることができます。 また、ドキュメントが最初に開かれたときにデータを入力するカスタマイズで、ユーザーが直接アクセスする機能が他に提供されない場合は、カスタマイズによってドキュメントの初期化が完了した直後に RemoveCustomization を呼び出すことができます。

閉じているドキュメントやサーバー上のドキュメントからカスタマイズ アセンブリを削除するには

  1. コンソール アプリケーションや Windows フォーム プロジェクトなど、Microsoft Office を必要としないプロジェクトでは、Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll アセンブリへの参照を追加します。

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

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

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

    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);
    }
    
  4. プロジェクトをビルドし、カスタマイズを削除するコンピューターでアプリケーションを実行します。 コンピューターには、Visual Studio 2010 Tools for Office ランタイムがインストールされている必要があります。