Office 開発に関するサポート対象外の構成でのトラブルシュート (切り分けの進め方)

Last Update:

(※ 2017 年 2 月 14 日に Japan Office Developer Support Blog に公開した情報のアーカイブです。)

こんにちは、Office 開発 サポート チームの中村です。

ユーザーの皆様にサポート サービスをご愛顧頂いていることに厚く御礼申し上げます。

私たち Office サポート チームでは、日々、お客様から様々なお問い合わせを頂いておりますが、ご質問の内容によっては初期の切り分けに時間を要す場合や、サポート外の構成のため、調査に取り掛かれないこともあります。このような場合、事前にお客様側である程度問題の切り分けを実施いただくことで、私たちサポート チームで、より迅速にサポートを開始することができます。

今回の記事では、問題点の切り分けとして有効な手段をご紹介させていただくのと合わせて、サポート対象外の構成やご質問の内容を紹介させていただきます。サポートに問い合わせをする・しないに関わらず、問題が発生したときの初期調査の一助としても利用できる内容となっていますので、ぜひご確認ください。

2018/5/7 Update
2. について、Windows OS / Office の延長サポート終了に伴いサポート対象バージョンを更新しました。

2018/6/20 Update
「6. パフォーマンス チューニング」に、本ブログの別記事へのリンクを追記しました。

2018/7/12 Update
「6. パフォーマンス チューニング」に、本ブログの別記事へのリンクをさらに追記しました。

目次

1. サーバーサイド オートメーションでの現象
2. Windows Vista / Office 2007 以前での現象
3. Visual Basic 6.0 アプリケーションでの現象
4. サードパーティ製品との連携
5. 複雑なプログラムでの現象
6. パフォーマンス チューニング

1. サーバーサイド オートメーションでの現象

このブログでも何度か取り上げていますが、Office 製品はサーバーサイド構成で利用することをサポートしていません。これについては、詳細を以下の公開情報に記載しています。

タイトル : Office のサーバーサイド オートメーションについて
アドレス : https://support.microsoft.com/ja-jp/help/257757

サーバーサイドと表現していますが、これは、無人の非対話型クライアント アプリケーションからの Office オートメーションを意味しています。Office がサーバーサイド オートメーション構成に該当するかどうかの最初のポイントは、Office アプリケーションを OS にログインしたユーザーの権限で起動しているかどうかです (実行ユーザーを指定している場合も、ユーザープロファイルや対話デスクトップの状態など、ユーザーが OS ログインしている状態とは異なる部分があり、Office の設計前提を満たしていないため、同様にサポート外の構成です) 。過去の投稿で例を挙げながら詳細を説明していますので、併せてご確認ください。

切り分け方法

サーバーサイド オートメーションでの利用時にエラーが発生するなどのトラブルに直面した場合は、以下の切り分けを行います。

  1. 現象が発生するマシンに直接、またはリモート デスクトップでログインし、Office を手動で起動してエラーが生じる処理と同じ操作を GUI から行う
  2. 現象が発生するマシンに直接、またはリモート デスクトップでログインし、Office を起動するプログラムを手動で実行する (例 : タスクスケジューラから Office をオートメーションするバッチを起動している場合は、このバッチを手動で実行)

なお、DCOM の構成については、変更していないことが前提となります。a や b で現象が発生する場合は、この切り分け後の構成についてサポート サービスをご提供できます。(a の方が、プログラムの実装の問題でないことが確認できますので、より調査が容易です。)

対応方法

切り分けの結果、a や b では現象が再現しない場合、サーバーサイド オートメーション独自の問題である可能性があります。現象に開発段階で直面している場合は、構成を再検討頂くことをお勧めします。以下のブログ記事で、代替案についていくつかご案内していますので、参考として頂ければ幸いです。

タイトル : Office サーバー サイド オートメーションの代替案について
アドレス : https://officesupportjp.github.io/blog/Office サーバー サイド オートメーションの代替案について/

2018/5/7 Update

2. Windows Vista / Office 2007 以前での現象

2018 年 5 月 7 日現在、サポート対象の Office 製品バージョンは Office 2010 以降です。また、Windows OS は Windows 7 およびサーバー OS では Windows Server 2008 以降をサポートしています。これ以前の Office や OS で生じたエラーについては、既にサポートを終了していますので、サポートをお受けできません。Microsoft 製品のサポート ライフサイクルについては、以下のサイトで検索できます。

タイトル : 製品のライフサイクルの検索
アドレス : https://support.microsoft.com/ja-jp/lifecycle/search

切り分け方法

Office および OS ともにサポート対象のバージョンで同じ操作を行い、現象が再現するかどうかを確認してください。サポート対象のバージョンでも現象が再現する場合は、このサポート対象バージョンの構成についてサポートをお承りできます。

さらに、既知の問題などは新しいバージョンや、サービス パック、更新プログラムで修正されている可能性がありますので、可能な限り最新の Office バージョン、かつ最新のサービス パックと更新プログラムが適用された環境で動作を確認してください。(調査の過程で、最新のバージョンでお試し頂くことをご案内する場合もあります。)

3. Visual Basic 6.0 アプリケーションでの現象

Visual Basic 6.0 (VB6) は既にサポートを終了しているため、VB6 で実装されたプログラムが関連する問題についてはサポートをお受けできません。

タイトル : 製品のライフサイクルの検索 - Visual Basic 6.0
アドレス : https://support.microsoft.com/ja-jp/lifecycle/search?alpha=Visual%20Basic%206.0

切り分け方法

VBA、VBScript、VB.NET などのサポート可能な言語で同じ処理を実装し、現象が再現するかどうかを確認します。サポート対象の言語でも現象が再現する場合は、この構成についてサポートをお受けできます。


ここからは、プロフェッショナル サポートのご契約ではお受けできない構成についてです。

4. サードパーティ製品との連携

プロフェッショナル サポートでは、現象再現の流れにおいてサードパーティ製品が関連する調査をお受けできません。

例えば、Office の処理を監視するソフトウェアが導入されている環境で生じる現象や、サードパーティ製品からオートメーションで Office が実行される構成などが想定されます。

タイトル : プロフェッショナル サポートの対応範囲 Q&A
アドレス : https://www.microsoft.com/ja-jp/services/professional/supportqa.aspx
該当箇所 : 複数製品にまたがるトラブルの切り分け

プレミア サポートではこのような構成でもサポートをお受けしておりますが、サードパーティ製品の影響で現象が生じることが確認された場合、販売元会社様へのお問い合わせをお願いする場合があります。

切り分け方法

サードパーティ製品の動作を無効化、できればアンインストールして同じ処理を行い、現象が再現するかを確認します。アンインストールを推奨するのは、ソフトウェアの仕組みによっては、機能を無効化しても処理の一部は停止されないことがあるためです。この状態で現象が再現する場合は、この切り分け済みの構成についてサポートをお受けできます。

5. 複雑なプログラムでの現象

プロフェッショナル サポートでは、お客様の実際の運用コードでの現象についての調査をお受けできません。プロフェッショナル サポートは、お客様にて問題点を切り分けていただいた上での調査をお受けしております。

タイトル : プロフェッショナル サポートの対応範囲 Q&A
アドレス : https://www.microsoft.com/ja-jp/services/professional/supportqa.aspx
該当箇所 : デバッグ支援、コード レビュー、サンプルコード提供

プレミア サポートでは、運用コードについてのご支援も承っております。

切り分け方法

現象が再現する最小構成のサンプル プログラム (目安として、50 行程度までのコード) を作成頂ければ、本プログラムについてのサポートをお承りできます。一般的には、以下のような流れで運用コードからのサンプル化を実施頂くのが良いかと思います。

  1. まずは、現象が再現するプログラムにデバッグ ログを出力するコードを追加し、処理がどこまで進んでいるのか、つまり、どのコードでエラーが発生しているのかを確認します。(エラー箇所にばらつきがないか確認するため、複数回確認してください。)
  2. 1. で確認したコードと、それを実行するための最小限のコードのみを実装したサンプル プログラムで現象が再現するかどうかを確認します。(例 : SaveAs のような保存処理でエラーとなる場合は、アプリケーションの起動、ファイルのオープン、任意の値の書き込み、保存、ファイルのクローズ、アプリケーションの終了のみを実装します。)
  3. 2. の構成では現象が再現しない場合は、運用コードで保存前に行っている処理が影響する可能性があります。コードの量にもよりますが、1 つずつ運用コードの処理を追加してどのコードを追加すると現象が再現するかを確認したり、反対に全て追加して再現を確認してから処理を 1 つずつ削るなどの方法で、どの前提処理が影響するかを確認します。
  4. 3. で確認した影響を与える前提処理と、エラーが生じる処理のみにあらためてサンプル コードを最小化し、現象の再現を確認します。

6. パフォーマンス チューニング

プロフェッショナル サポートでは、お客様のコードのパフォーマンス改善についてのお問い合わせをお承りしておりません。パフォーマンスの改善を図るには、お客様のコード レビューを行う必要があり、場合によってはシステム構成や処理対象のファイル構成など、多岐にわたる情報を整理した上で調査を行う必要があるためです。

公開情報に記載の通り、Office 製品や OS のバージョンアップや更新プログラム適用によって現象が発生し始めた場合は、パフォーマンス低下に関するお問い合わせも承っております。

タイトル : プロフェッショナル サポートの対応範囲 Q&A
アドレス : https://www.microsoft.com/ja-jp/services/professional/supportqa.aspx
該当箇所 : パフォーマンス / チューニング

プレミア サポートでは、パフォーマンス チューニングについてのご支援も承っております。

また、以下のブログ記事でお客様自身でのパフォーマンスに関する調査の進め方をご紹介しています。最終的にはお客様自身で判断が難しい部分もありますが、可能な範囲で調査を進めたいという場合にはご参照いただければ幸いです。

タイトル : Office 開発におけるパフォーマンス トラブルシュート (その 1 : 概要と対処方法)
アドレス : https://officesupportjp.github.io/blog/Office 開発におけるパフォーマンス トラブルシュート (その 1:概要と対処方法)/

タイトル : Office 開発におけるパフォーマンス トラブルシュート (その 2 : ボトルネックの特定)
アドレス : https://officesupportjp.github.io/blog/Office 開発におけるパフォーマンス トラブルシュート (その 2:ボトルネックの特定)/

切り分け方法

お客様コードのロジックを含む見直しが必要な調査はお受けできませんが、特定のメソッドが非常に遅いといった場合には、代替となる実装方法や、Office のオプション設定の工夫、処理対象のファイル構造の見直しなどのご提案を差し上げられる場合があります。

5. 複雑なプログラムでの現象」と同じように、プログラムの中のどこで時間がかかっているかをデバッグ ログなどから確認していただき、ボトルネックとなる特定の関数についてのお問い合わせを頂ければ幸いです。

ただ、処理内容によっては現在の速度が Office 製品の限界である場合もありますので、必ずパフォーマンス改善のご提案ができることをお約束はできないことを予めご了承ください。

今回の投稿は以上です。

本情報の内容 (添付文書、リンク先などを含む) は、作成日時点でのものであり、予告なく変更される場合があります。