Office プロジェクトのデバッグ
他の Visual Studio プロジェクトで使うのと同じ Microsoft Visual Studio ツールを使って Office プロジェクトをデバッグできます。 Office プロジェクトのデバッグ時には、ブレークポイントの挿入や [ローカル] ウィンドウでの変数の表示など、Visual Studio デバッガーの機能も使用できます。 Visual Studio デバッグ ツールの詳細については、Visual Studio でのデバッグに関するページを参照してください。
ヒント
デバッグを簡略化するには、ビルドしてデバッグする前に、Office アプリケーションで開いているすべてのインスタンスを閉じます。
対象: このトピックの情報は、ドキュメントレベルのプロジェクトおよび VSTO アドイン プロジェクトに適用されます。 「Office アプリケーションおよびプロジェクトの種類別の使用可能な機能」を参照してください。
注意
複数のプラットフォームで Office エクスペリエンスを拡張するソリューションの開発に関心がありますか。 新しい Office アドイン モデルを確認してください。 Office アドインの占有領域は、VSTO アドインやソリューションと比較して小さく、その作成には、HTML5、JavaScript、CSS3、XML など、ほぼすべての Web プログラミング テクノロジを使用できます。
Office プロジェクトのデバッグの開始方法は、他の Visual Studio プロジェクトのデバッグの開始方法と同じです (F5 キーを押すなど)。 VSTO アドイン プロジェクトのデバッグを開始すると、対象となる Office アプリケーションの新しいプロセスが開始され、VSTO アドインが読み込まれます。
ドキュメント レベルのプロジェクトのデバッグを開始すると、ドキュメントまたはブックは新しい Word または Excel プロセスで開かれます。
デバッガーを停止すると、アプリケーション プロセスが即座に停止されます。また、デバッガーをデタッチするように設定してある場合にはデバッガーがデタッチされます。 停止する Office アプリケーション プロセスで開かれている他のすべてのドキュメントも警告を表示せずに閉じ、未保存の変更は失われます。 これには、デバッガーの実行中に開かれた文書やブックもすべて含まれます。
一般に、通常の方法で Office アプリケーションを終了できるように、デバッガーを停止する前にプロセスからデタッチしておくことをお勧めします。 デバッガーを停止した後も開いているドキュメントやワークシートを操作する場合は、プロセスからデタッチすることもできます。
Word のドキュメント レベルのカスタマイズ時に、デバッガーを何度も停止したり Word を突然終了したりすると、Normal テンプレートが破損する場合があります。 その場合は壊れた Normal テンプレートを削除します。テンプレートは、Word を次に開いたときに自動的に再作成されます。 ただし、Normal テンプレートに格納されていたマクロは再作成されません。
Visual Studio 2015 を使用しており、Office の両方のバージョンが並列でインストールされている場合、Office 2016 が起動します。 Visual Studio 2013 を使用している場合、Office 2013 が起動します。
別のバージョン (2013 または 2016) の Office を使用して VSTO アドインをデバッグする場合は、 [プロジェクト デザイナー]を開き、 [デバッグ] タブで [外部プログラムの開始] オプション ボタンをクリックします。 次に、適切な Office アプリケーションの実行可能ファイルの場所を参照します。
Office プロジェクトのデバッグ開始における F10 および F11 キーの動作は、他の Visual Basic または C# プロジェクトのデバッグ開始の場合と同じではありません。 Visual Basic や C# のプロジェクトの場合、デバッガーはメイン関数で停止しますが、Office プロジェクトの場合、Visual Studio では Office アプリケーションのメイン関数に対する制御権がありません。 ただし、デバッグ実行中の F10 および F11 キーは、Visual Basic および C# のプロジェクトの場合と同じ機能です。
Visual Studio では、マネージド コードによるアンマネージド コードの操作方法が原因で、Microsoft Office アプリケーションからスローされたエラーは表示されません。 たとえば、Visual Studio の Office 開発ツールで作成された VSTO アドインが例外をスローした場合、Microsoft Office アプリケーションではエラーを表示せずに動作を継続します。 これらのエラーを表示するには、デバッガーが共通言語ランタイムの例外で中断されるように設定します。 詳細については、「デバッガーでの例外の管理」を参照してください。
共通言語ランタイム例外で中断するようにデバッガーを設定した場合、処理済みの例外や、プロジェクトに関係しない可能性もあるランタイム自体からのいくつかの初回例外も含め、すべての例外でデバッガーが中断されるようになります。 どのプロジェクトでも、不明な msosec を参照するエラーが表示されますが、これは無視してもかまいません。 このような msosec 例外はソリューションに影響しません。
メソッドの周囲で Try...Catch ステートメントを使用して、例外をキャッチすることもできます。
既定では、Visual Studio で Office プロジェクトの Just-In-Time デバッグ エラーも表示されませんが、発生したエラーを表示できるように、この機能を有効にすることができます。 詳細については、Visual Studio での Just-In-Time デバッグに関するページを参照してください。
[デバッグ] プロパティ ページの [開始動作] が [スタート プロジェクト] に設定されている場合、Visual Studio ではプロジェクトのデバッグ時にコマンド ライン引数を使用しません。起動オプションでコマンド ライン引数を指定した場合でも同様です。 デバッグの開始時にコマンド ライン引数を使用するには、[開始動作] を [スタート プロジェクト] 以外に設定する必要があります。
デバッグ プロパティは、ソース管理で複数のユーザー間では共有されません。 Visual Basic プロジェクトや Visual C# プロジェクトでは、デバッグ プロパティはユーザー固有のファイル (ProjectName.vbproj.user または ProjectName.csproj.user) に格納されます。このファイルはソース管理されません。 複数のユーザーがデバッグを実行する場合は、各自が手動でデバッグ プロパティを入力する必要があります。
プロジェクトをビルドするたびに、データセットは空になり、再作成されます。 キャッシュされたデータセットをデバッグする場合は、Visual Studio の外部で文書を開いてからデバッガーをアタッチする必要があります。
Word 97 ~ Word 2003 の文書 (/.doc*) 形式に基づく Word 文書プロジェクトをデバッグするには、信頼できるフォルダー一覧にプロジェクト フォルダーを追加する必要があります。 この手順の詳細については、「ドキュメントへの信頼の付与」を参照してください。
Microsoft Office アプリケーションにより、予期しない動作をする VSTO アドインが無効にされる場合があります。 Microsoft Office アプリケーションは、起動するたびに問題のあるコードが読み込まれないようにするため、VSTO アドインを無効にします。 しかし、通常のデバッグ時に、予期しない動作が発生することはよくあります。 VSTO アドインを再度有効にする方法については、「方法: 無効にされた VSTO アドインを再度有効にする」を参照してください。
Microsoft Office アプリケーションで VSTO アドインに適用される無効化には、ハードな無効化とソフトな無効化の 2 種類があります。
ハード的な無効化は、VSTO アドインによってアプリケーションが予期せずに終了した場合に発生する可能性があります。 また、開発用コンピューターで VSTO アドインの Startup イベント ハンドラーの実行中にデバッガーを停止した場合にも発生することがあります。 VSTO アドインがハードに無効化されると、そのアドインがアプリケーションの [使用できないアイテム] ボックスの一覧に表示されます。
Office アプリケーションで Visual Studio の Office 開発ツールで作成された VSTO アドインをハードに無効化する場合、このアプリケーションでは、エラーの原因となった VSTO アドインのみを無効化します。 Visual Studio の Office 開発ツールを使用してその Office アプリケーション用に作成されたその他の VSTO アドインの読み込みは続行されます。
ソフトな無効化は、VSTO アドインによってエラーが発生したが、アプリケーションが予期せずに終了するということがなかったという場合に発生する可能性があります。 たとえば、 Startup イベント ハンドラーの実行中に VSTO アドインによってハンドルされない例外がスローされた場合に、アプリケーションによってそのアドインがソフトに無効化されることがあります。 VSTO アドインがソフトに無効化されると、そのアドインがアプリケーションの [アクティブでないアプリケーション アドイン] ボックスの一覧に表示され、アンロードされていないことを示すために、その VSTO アドインの LoadBehavior レジストリ エントリの値が変更されます。 LoadBehavior レジストリ エントリの詳細については、「VSTO アドインのレジストリ エントリ」を参照してください。
Office ソリューションのインストール時またはアンインストール時にスローされたすべての例外のメッセージは、Visual Studio Tools for Office ランタイムによって Windows のイベント ビューアーに書き込まれます。 これらのメッセージを使用して、インストールと配置の問題を解決できます。
Visual Studio Tools for Office ランタイムでは、起動時に発生するすべてのエラーをログ ファイルに書き込んだり、エラーが発生するたびにメッセージ ボックスに表示したりできます。 既定では、これらのオプションはオフになっています。 環境変数を作成し、オプションを有効にすることができます。
エラーが発生するたびにメッセージ ボックスに表示するには、 VSTO_SUPPRESSDISPLAYALERTS
という環境変数を作成し、0 (ゼロ) に設定します。 メッセージが表示されないようにするには、環境変数を削除するか、1 に設定します。
エラーをログ ファイルに書き込むには、 VSTO_LOGALERTS
という環境変数を作成し、1 に設定します。 Visual Studio Tools for Office ランタイムによって、VSTO アドインの配置マニフェストを含むフォルダーまたはカスタマイズに関連付けられている文書またはブックを含むフォルダーにログ ファイルが作成されます。 失敗した場合は、Visual Studio Tools for Office ランタイムは、ローカルの %TEMP% フォルダーにログ ファイルが作成されます。 アプリケーション レベルの VSTO アドインの場合、既定の名前は add-in name.vsto.log です。 ドキュメント レベルのプロジェクトの場合、ログ ファイルの名前は document name.extension.log です (例: ExcelWorkbook1.xlsx.log)。 エラーのログ記録を停止するには、この環境変数を 0 (ゼロ) に設定します。