次の方法で共有


Office ソリューションのエラーのトラブルシューティング

Visual Studio で Office ソリューションを開発しているときに次のタスクを実行すると問題が発生することがあります。

  • プロジェクトの作成、アップグレード、およびオープン

  • デザイナーの使用

  • コードの作成

  • プロジェクトのビルド

  • プロジェクトのデバッグ

プロジェクトの作成、アップグレード、およびオープン

Office プロジェクトを作成または開くときに、次のエラーが発生する場合があります。

h8c469ey.collapse_all(ja-jp,VS.110).gifプロジェクトを作成できない

Office プロジェクトを作成しようとしたときまたは開こうとしたときにエラーが発生しましたが、原因を特定する十分な情報が Visual Studio にありません。プロジェクトを閉じ、Visual Studio を終了し、もう一度起動してください。

ドキュメント レベルのプロジェクトを作成する場合、新しいプロジェクトのドキュメントと同じ名前の別のドキュメントが Excel または Word で既に開いている可能性があります。Excel または Word の他のインスタンスがすべて閉じていることを確認します。

h8c469ey.collapse_all(ja-jp,VS.110).gif既存のプロジェクトのドキュメントに基づいて新しいプロジェクトを作成するとコントロールのプロパティが失われる

既存のプロジェクトのドキュメントに基づいて新しい Office プロジェクトを作成した場合、元のドキュメントにあったコントロールのプロパティは、新しいプロジェクトにコピーされません。既に存在しているコントロールのプロパティは、手動で再設定する必要があります。コントロールのプロパティを保持するには、新しいプロジェクトを作成する代わりに既存のプロジェクトのコピーを作成します。または、(デザイナーで) 新しいソリューションに既存のプロジェクトを読み込み、既存のドキュメントのコントロールをコピーして新しいドキュメントに貼り付けます。

h8c469ey.collapse_all(ja-jp,VS.110).gif既存のブックに基づいて Excel ブック プロジェクトを作成するときに発生するエラー

既存のブックに基づいて Excel ブック プロジェクトを作成する場合は、次のエラーが一緒に表示される可能性があります。

Excel から: "プライバシーに関する注意: このドキュメントには、マクロ、ActiveX コントロール、XML 拡張パックの情報、または Web コンポーネントが含まれています。これらにはドキュメント検査機能で削除することができない個人情報が含まれる場合があります。"

Visual Studio から: "デザイナーが読み込みに失敗しました。"

これらのエラーは、ドキュメント検査機能を使用して削除した個人情報を含むブックに基づいてプロジェクトを作成しようとすると発生することがあります。このエラーを回避するには、プロジェクトを作成する前に、次の手順を実行します。

  1. Excel でブックを開きます。

  2. Excel で、セキュリティ センターを開きます。

  3. [プライバシー オプション] タブで、[ファイルを保存するときにファイルのプロパティから個人情報を削除する] チェック ボックスをオフにします。

  4. ブックを保存して、Excel を閉じます。

h8c469ey.collapse_all(ja-jp,VS.110).gif移行後にプロジェクトが開けなくなる

Microsoft Office 2010 に Office ソリューションを移行すると、2007 Microsoft Office system のみがインストールされた開発コンピューターではプロジェクトが開けません。次のエラーが表示される可能性があります。

"ソリューション内の 1 つ以上のプロジェクトが正しく読み込まれていません。詳細については、出力ウィンドウを確認してください。"

"このプロジェクトの種類に関連付けられたアプリケーションがこのコンピューターにインストールされていないため、プロジェクトを作成できません。このプロジェクトの種類に関連付けられた Microsoft Office アプリケーションをインストールする必要があります。" というメッセージが表示される場合があります。

この問題を解決するには、.vbproj または .csproj ファイルを編集します。Word プロジェクトの場合は、HostPackage="{763FDC83-64E5-4651-AC9B-28C4FEB985A1}" を HostPackage="{6CE98B71-D55A-4305-87A8-0D6E368D9600}" で置換します。Excel プロジェクトの場合は、HostPackage="{B284B16A-C42C-4438-BDCD-B72F4AC43CFB}" を HostPackage="{825100CF-0BA7-47EA-A084-DCF3308DAF74}" で置換します。Outlook プロジェクトの場合は、HostPackage="{D2B20FF5-A6E5-47E1-90E8-463C6860CB05}" を HostPackage="{20A848B8-E01F-4801-962E-25DB0FF57389}" で置換します。

または、Microsoft Office 2010 が既にインストールされている開発コンピューターでのみ、移行済みのプロジェクトを開くようにします。

h8c469ey.collapse_all(ja-jp,VS.110).gifWindows フォーム コントロールを含むアップグレードされた Office 2003 のドキュメント レベルのプロジェクトで発生するエラー

Microsoft Office 2003 のドキュメント レベルのプロジェクトをアップグレードする場合、ドキュメントに Windows フォーム コントロールが含まれていると、アップグレード後のプロジェクトでコンパイル エラーまたは実行時エラーが発生する可能性があります。この問題を回避するには、プロジェクトをアップグレードする前に、開発用コンピューターに Visual Studio 2005 Tools for Office Second Edition Runtime をインストールします。このバージョンのランタイムは、Microsoft ダウンロード センターの「Microsoft Visual Studio 2005 Tools for Office Second Edition Runtime (build 8.0.50727.940) (x86)」から再頒布可能パッケージとしてダウンロードできます。

Visual Studio 2005 Tools for Office Second Edition Runtime は、他の Office ソリューションで使用されていない場合、プロジェクトのアップグレードが完了した後に開発用コンピューターからアンインストールできます。

デザイナーの使用

ドキュメント レベルのプロジェクトでドキュメント デザイナー、ブック デザイナー、またはワークシート デザイナーを使用するときに、次のエラーが発生する場合があります。

h8c469ey.collapse_all(ja-jp,VS.110).gifデザイナーの読み込みに失敗する

次の場合、Visual Studio でデザイナーを開くことができません。

  • Excel または Word が既に開かれていて、モーダル ダイアログ ボックスが表示されています。デザイナーを開くには、Excel または Word でモーダル ダイアログ ボックスが開いていないかどうかを確認し、開いているモーダル ダイアログ ボックスがある場合は閉じます。開いているモーダル ダイアログ ボックスがない場合は、Excel または Word が応答するのに、他のなんらかのアクションが必要な可能性があります。

  • プロジェクトが現在デバッグ中です。デザイナーを開くには、デバッグを停止または終了します。

  • 開発コンピューターにインストールされている Excel アドインによって、Excel の起動時にダイアログ ボックスが表示されています。Excel のドキュメント レベルのプロジェクトを作成するには、まずアドインを無効にする必要があります。

h8c469ey.collapse_all(ja-jp,VS.110).gif文書またはワークシートでコントロールが黒い四角形として表示される

文書またはワークシートでコントロールをグループ化すると、Visual Studio ではコントロールを認識できなくなります。グループ化されたコントロールは [プロパティ] ウィンドウからアクセスできず、文書またはワークシートで黒い四角形として表示されます。コントロールの機能を元に戻すには、グループ化を解除する必要があります。

h8c469ey.collapse_all(ja-jp,VS.110).gifWord テンプレートのコントロールが Visual Studio に表示されない

Visual Studio デザイナーで Word テンプレートを開くと、テキスト行内にないコントロールは表示されない場合があります。これは、Visual Studio では Word テンプレートが [標準] ビューで表示されるためです。コントロールを表示するには、[表示] メニューの [Microsoft Office Word 表示] をポイントして [印刷レイアウト] をクリックします。

h8c469ey.collapse_all(ja-jp,VS.110).gifクリップ アートを挿入するコマンドを実行しても Visual Studio デザイナーで何も起こらない

リボンの [図] タブの [クリップ アート] をクリックしても、Visual Studio デザイナーで Excel または Word を開いている場合は [クリップ アート] 作業ウィンドウは表示されません。クリップ アートを追加するには、(\bin フォルダーにあるブックまたは文書ではなく) メイン プロジェクト フォルダーにあるブックまたは文書を Visual Studio の外部で開き、クリップ アートを追加してからそのブックまたは文書を保存する必要があります。

コードの作成

Office プロジェクトでコードを作成するときに、次のエラーが発生する場合があります。

h8c469ey.collapse_all(ja-jp,VS.110).gifC# の使用時に Office オブジェクトの一部のイベントにアクセスできない

Visual C# プロジェクトで Office プライマリ相互運用機能アセンブリ (PIA) 型のインスタンスの特定のイベントにアクセスしようとすると、次のようなコンパイル エラーが表示される場合があります。

"'Microsoft.Office.Interop.Excel._Application.NewWorkbook' と 'Microsoft.Office.Interop.Excel.AppEvents_Event.NewWorkbook' があいまいです。"

このエラーは、オブジェクトの別のプロパティまたはメソッドと同じ名前のイベントにアクセスしようとしていることを示しています。イベントにアクセスするには、オブジェクトをそのイベント インターフェイスにキャストする必要があります。

イベントが存在する Office PIA 型では、すべてのプロパティとメソッドを含むコア インターフェイスと、オブジェクトによって公開されるイベントを含むイベント インターフェイスという 2 つのインターフェイスが実装されます。これらのイベント インターフェイスでは、objectnameEventsn_Event という名前付け規則を使用しています (例: Microsoft.Office.Interop.Excel.AppEvents_EventMicrosoft.Office.Interop.Word.ApplicationEvents2_Event)。オブジェクトのイベントにアクセスできない場合は、オブジェクトをそのイベント インターフェイスにキャストします。

たとえば、Microsoft.Office.Interop.Excel.Application オブジェクトには NewWorkbook イベントと NewWorkbook プロパティがあります。NewWorkbook イベントを処理するには、Microsoft.Office.Interop.Excel.ApplicationAppEvents_Event インターフェイスにキャストします。Excel のドキュメント レベルのプロジェクトでこの処理を実行するコード例を次に示します。

private void ThisWorkbook_Startup(object sender, System.EventArgs e)
{
    ((Excel.AppEvents_Event)this.Application).NewWorkbook += 
        new Excel.AppEvents_NewWorkbookEventHandler(ThisWorkbook_NewWorkbook);
}

void ThisWorkbook_NewWorkbook(Excel.Workbook Wb)
{
    // Perform some work here.
}

Office PIA のイベント インターフェイスの詳細については、「Overview of Classes and Interfaces in the Office Primary Interop Assemblies」を参照してください。

h8c469ey.collapse_all(ja-jp,VS.110).gif.NET Framework 4 か .NET Framework 4.5を対象とするプロジェクトで Office PIA のクラスを参照できません

.NET Framework 4 か .NET Framework 4.5を対象とするプロジェクトでは、参照するコードは、Office PIA で定義されているクラス既定でコンパイルされます。PIA のクラスでは、objectnameClass という名前付け規則を使用しています (例: DocumentClassWorkbookClass)。たとえば、Word アドイン プロジェクトの次のコードはコンパイルされません。

Dim document As Word.DocumentClass = Globals.ThisAddIn.Application.ActiveDocument
Word.DocumentClass document = (Word.DocumentClass) Globals.ThisAddIn.Application.ActiveDocument;

このコードでは、次のコンパイル エラーが発生します。

  • Visual Basic: "クラス 'DocumentClass' への参照は、そのアセンブリが No-PIA モードを使用してリンクされている場合には許可されません。"

  • Visual C#: "相互運用型 'Microsoft.Office.Interop.Word.DocumentClass' を埋め込むことができません。適用可能なインターフェイスを代わりに使用してください。"

このエラーを解決するには、対応するインターフェイスを代わりに参照するようにコードを変更します。たとえば、DocumentClass オブジェクトではなく、代わりに Document インターフェイスのインスタンスを参照します。

Dim document As Word.Document = Globals.ThisAddIn.Application.ActiveDocument
Word.Document document = Globals.ThisAddIn.Application.ActiveDocument;

.NET Framework 4 か .NET Framework 4.5を対象とするプロジェクトでは、自動的に Office PIA のすべての相互運用機能型を既定では埋め込みます。このコンパイル エラーが発生するのは、埋め込まれた相互運用機能型の機能が、クラスではなく、インターフェイスでのみ動作するためです。Office PIA のインターフェイスおよびクラスの詳細については、「Overview of Classes and Interfaces in the Office Primary Interop Assemblies (Office プライマリ相互運用機能アセンブリのクラスとインターフェイスの概要)」を参照してください。Office プロジェクトに埋め込まれた相互運用機能型の機能の詳細については、「Office ソリューションのデザインと作成」を参照してください。

h8c469ey.collapse_all(ja-jp,VS.110).gifOffice クラスへの参照が認識されない

Application など一部のクラス名は、Microsoft.Office.Interop.WordSystem.Windows.Forms のような複数の名前空間にあります。したがって、プロジェクト テンプレートの先頭にある Imports/using ステートメントでは、以下のように、修飾子を短縮する定数を指定しています。

Imports Word = Microsoft.Office.Interop.Word
using Word = Microsoft.Office.Interop.Word;

Imports/using ステートメントをこのように使用した場合は、Office クラスへの参照を Word または Excel の修飾子で区別する必要があります。使用例は次のとおりです。

Dim doc As Word.Document
Word.Document doc;

限定されていない宣言を使用すると、エラーが発生します。使用例は次のとおりです。

Dim doc As Document  ' Class is ambiguous
Document doc;  // Class is ambiguous

Word または Excel の名前空間をインポートし、その名前空間内のすべてのクラスにアクセスできる場合でも、すべての型を Word または Excel の完全修飾名で指定して、名前空間のあいまいさを排除する必要があります。

プロジェクトのビルド

Office プロジェクトのビルド時に、次のエラーが発生する場合があります。

h8c469ey.collapse_all(ja-jp,VS.110).gif制限付きアクセス許可が設定されたドキュメントに基づくドキュメント レベルのプロジェクトをビルドできない

Visual Studio では、ドキュメントに制限されたアクセス許可が設定されている場合、ドキュメント レベルのプロジェクトをビルドすることはできません。プロジェクトに制限付きアクセス許可が設定されたドキュメントが含まれている場合、プロジェクトはコンパイルされず、[エラー一覧] ウィンドウに次のメッセージが表示されます。

"カスタマイズを追加できませんでした。"

制限付きアクセス許可が設定されたドキュメントを含める場合は、ソリューションの開発およびビルドの段階ではアクセス許可に制限のないドキュメントを使用してください。ソリューションを発行してから、発行場所のドキュメントに制限付きアクセス許可を適用します。

h8c469ey.collapse_all(ja-jp,VS.110).gifNamedRange コントロールを削除した後でコンパイラ エラーが発生する

デザイナーでアクティブでないワークシートから NamedRange コントロールを削除すると、自動生成コードがプロジェクトから削除されずに、コンパイラ エラーが発生する場合があります。コードを確実に削除するには、コントロールを削除する前に NamedRange コントロールを含むワークシートを選択して、アクティブなワークシートにする必要があります。コントロールを削除しても自動生成コードが削除されない場合は、ワークシートをアクティブにして変更を加えると、そのワークシートは変更済みとして識別され、デザイナーでコードを削除できます。プロジェクトをリビルドすると、コードが削除されます。

プロジェクトのデバッグ

Office プロジェクトのデバッグ時に、次のエラーが発生する場合があります。

h8c469ey.collapse_all(ja-jp,VS.110).gif開発用コンピューターにソリューションを発行およびインストールするとアンインストールするよう求めるプロンプトが表示される

Office ソリューションのデバッグ時に、次のエラーが表示されることがあります。

"現在他のバージョンがインストールされており、この場所からアップグレードすることはできないため、このカスタマイズをインストールすることはできません。"

このエラーは、以前に開発用コンピューターにソリューションを発行およびインストールしていることを示しています。このメッセージが表示されないようにするには、ソリューションをデバッグする前に、コンピューターにインストールされているプログラムの一覧からそのソリューションをアンインストールします。または、開発用コンピューターに別のユーザー アカウントを作成して、発行したソリューションのインストールをテストします。

h8c469ey.collapse_all(ja-jp,VS.110).gifUNC ネットワーク上の場所に作成されたドキュメント レベルのプロジェクトを Visual Studio から実行できない

UNC ネットワーク上の場所に Excel または Word のドキュメント レベルのプロジェクトを作成する場合、ドキュメントの場所を Word または Excel の信頼できる場所の一覧に追加する必要があります。そうしないと、Visual Studio でプロジェクトを実行またはデバッグする際に、カスタマイズが読み込まれません。信頼された場所の詳細については、「ドキュメントへの信頼の付与」を参照してください。

h8c469ey.collapse_all(ja-jp,VS.110).gifデバッグ後にスレッドが正しく停止しない

Visual Studio の Office プロジェクトでは、デバッガーがプログラムを正常に終了できるようにするためのスレッド名前付け規則に従います。ソリューション内にスレッドを作成する場合、デバッグを中止するときにそのスレッドが正しく処理されるようにするには、各スレッド名に VSTA_ というプレフィックスを付ける必要があります。たとえば、ネットワーク イベントを待機するスレッドの Name プロパティに、VSTA_NetworkListener という名前を設定します。

h8c469ey.collapse_all(ja-jp,VS.110).gif開発用コンピューターで Office ソリューションを実行またはデバッグできない

開発用コンピューターで Office プロジェクトを実行または開発できない場合は、次のエラー メッセージが表示されることがあります。

"アプリケーション ドメインが作成されなかったため、カスタマイズは読み込まれませんでした。"

Visual Studio は、.NET Framework アセンブリ ローダーである fusion を使用して、Office ソリューションを読み込む前にアセンブリをキャッシュします。Visual Studio から fusion のキャッシュに書き込めることを確認して、もう一度やり直してください。詳細については、「アセンブリのシャドウ コピー」を参照してください。

h8c469ey.collapse_all(ja-jp,VS.110).gifエディット コンティニュの使用後にドキュメント レベルのプロジェクトでデバッガーを停止すると発生するエラー

Excel または Word のドキュメント レベルのプロジェクトが中断モードの場合に、エディット コンティニュを使用してプロジェクト内のコードを変更し、その後でデバッガーを停止すると、次のエラー メッセージがダイアログ ボックスに表示されることがあります。

"このプロセスを現在の状態で終了すると、データを消失したりシステムが不安定になったりするなど、予期しない結果になる場合があります。"

ダイアログ ボックスで [はい][いいえ] のどちらをクリックしても、Visual Studio によって、Excel または Word プロセスが終了され、デバッガーが停止します。プロジェクトのデバッグを停止する際にこのダイアログ ボックスが表示されないようにするには、Visual Studio でデバッガーを停止せずに、直接 Excel または Word を終了します。

参照

処理手順

Office ソリューションのセキュリティのトラブルシューティング

概念

Office ソリューション配置のトラブルシューティング

その他の技術情報

Office ソリューションのトラブルシューティング