文書番号: 257757 - 最終更新日: 2009年4月24日 - リビジョン: 16.5 Office のサーバーサイド オートメーションについてこの記事は、以前は次の ID で公開されていました: JP257757 目次概要 開発者は、Microsoft Office でのオートメーションを使用して、Office 製品の組み込み機能を使用したカスタム ソリューションを構築できます。このようなプログラミングによって開発した機能は、クライアント システムに比較的簡単に実装できますが、Microsoft ASP (Active Server Pages)、ASP.NET、DCOM、Windows NT サービスなど、サーバーサイドのコードからオートメーションを起動する際に多数の問題が発生する可能性があります。 この資料では、開発者が直面することがある問題について説明します。またこの資料では、パフォーマンスを向上できるオートメーションの代替策についても説明します。ただし開発者は、この資料で示す設定方法の例は情報提供のみを目的としていることに注意する必要があります。マイクロソフトは、Office のサーバーサイド オートメーションの推奨もサポートも行っていません。 注 : この資料では、ユーザーがログオンしている対話型のステーション以外の Windows ワークステーションからコードが実行されているのであれば、Windows ワークステーション上で実行されるコードに対しても "サーバーサイド" という用語を使用します。たとえば、タスク スケジューラによって SYSTEM アカウントの下で実行されるコードは、"サーバーサイド" ASP コードまたは DCOM コードと同じ環境で実行されます。このため、この資料で説明されている問題の多くが発生する場合があります。Windows ワークステーションおよび COM については、「詳細」および「関連情報」を参照してください。 詳細 現在のすべてのバージョンの Microsoft Office は、クライアント ワークステーション上でエンドユーザー製品として実行するように設計、テスト、および構成されています。これらの製品では、対話型デスクトップおよびユーザー プロファイルを想定しています。無人実行されるように設計されたサーバーサイド コンポーネントの必要性を満たすのに必要なレベルの再入可能性やセキュリティは提供されません。 マイクロソフトは、現在のところ、無人の非対話型クライアント アプリケーションまたはコンポーネント (ASP、ASP.NET、DCOM、および NT サービスを含む) からの Microsoft Office アプリケーションのオートメーションに関して、推奨もサポートも行っていません。それは、このような環境で Office を実行した場合、Office で不安定な動作やデッドロックが発生する可能性があるためです。 サーバーサイド コンテキストで実行するソリューションを構築する場合、安全に無人実行できるコンポーネントを使用する必要があります。または、少なくとも、コードの一部をクライアントサイドで実行できる代替策を探す必要があります。サーバーサイド ソリューションから Office アプリケーションを使用すると、アプリケーションでは正常な実行のために必要な機能の多くが失われます。また、ソリューション全体の安定性を損なう危険性があります。 Office のオートメーションをサーバーサイドで使用する際の問題Office をサーバーサイド ソリューションで使用する開発者は、環境によっては Office が予想外の動作をする、主に 5 つの領域があることを認識しておく必要があります。コードを正常に実行するには、これらの問題を解決し、その影響を最小限に抑える必要があります。アプリケーションの構築にあたってはこれらの問題を慎重に検討します。これらの問題をすべて解決する方法はありません。設計が異なる場合は、要素の優先順位付けを変える必要があります。
このような問題以外にも、オートメーションによってサーバーサイドで Office を呼び出したときに、次のいずれかのエラーが共通して発生することがあります。
サーバーサイド オートメーションの代替策マイクロソフトは、サーバーサイド ソリューション開発の必要がある開発者には、Office のオートメーションの代替策を探すことを強くお勧めします。Office の設計には制約があるため、Office の構成に変更を加えてもすべての問題を解決するには不十分です。マイクロソフトは、サーバーサイドに Office をインストールする必要がなく、オートメーションより効率よく迅速に共通のほとんどのタスクを実行できるいくつかの代替策を強くお勧めします。 Office をサーバーサイド コンポーネントとしてプロジェクトに含める前に、代替策について検討してください。ほとんどのサーバーサイド オートメーションのタスクには、ドキュメントの作成または編集が含まれます。Office 2007 では、開発者がサーバー サイドでファイル コンテンツを作成、編集、読み込み、および変換できる新しい Open XML ファイル形式がサポートされています。これらのファイル形式は、Microsoft .NET 3.x Framework で System.IO.Package.IO 名前空間を使用して、Office クライアント アプリケーション自体を使用せずに Office ファイルを編集します。これが、サービスから Office ファイルへの変更を処理するための推奨されるサポートされた方式です。 Open XML ファイル形式は公開標準です。仕様のコピーを入手するには、以下の Web サイトを参照してください。 http://www.ecma-international.org/publications/standards/Ecma-376.htm
(http://www.ecma-international.org/publications/standards/Ecma-376.htm)
マイクロソフトは、.NET 3.x Framework から Open XML ファイル形式を操作するための SDK を提供しています。SDK の詳細、および SDK を使用して Open XML ファイルを作成または編集する方法の詳細については、以下の MSDN (Microsoft Developer Network) Web サイトを参照してください。Open XML SDK ドキュメント
http://msdn.microsoft.com/ja-jp/library/bb226703.aspx (http://msdn.microsoft.com/ja-jp/library/bb226703.aspx) [方法] Office Open XML 形式のドキュメントを操作する
http://msdn.microsoft.com/ja-jp/library/aa982683.aspx (http://msdn.microsoft.com/ja-jp/library/aa982683.aspx) Open XML オブジェクト モデルを使用して Word 2007 ファイルを操作する (パート 1/3)
http://msdn.microsoft.com/ja-jp/library/bb656295.aspx (http://msdn.microsoft.com/ja-jp/library/aa982683.aspx) Open XML オブジェクト モデルを使用して Word 2007 ファイルを操作する (パート 2/3)
http://msdn.microsoft.com/ja-jp/library/bb739835.aspx (http://msdn.microsoft.com/ja-jp/library/bb739835.aspx) Open XML オブジェクト モデルを使用して Word 2007 ファイルを操作する (パート 3/3) http://msdn.microsoft.com/ja-jp/library/bb727374.aspx (http://msdn.microsoft.com/ja-jp/library/bb727374.aspx) Open XML オブジェクト モデルを使用して Excel 2007 ファイルおよび PowerPoint 2007 ファイルを操作する (パート 1/2) http://msdn.microsoft.com/ja-jp/library/bb739834.aspx (http://msdn.microsoft.com/ja-jp/library/bb739834.aspx) Open XML オブジェクト モデルを使用して Excel 2007 ファイルおよび PowerPoint 2007 ファイルを操作する (パート 2/2)
http://msdn.microsoft.com/ja-jp/library/bb727373.aspx (http://msdn.microsoft.com/ja-jp/library/bb727373.aspx) Open XML オブジェクト モデルを使用してサーバー側ドキュメント生成ソリューションを構築する (パート 1/2) http://msdn.microsoft.com/ja-jp/library/bb735940.aspx (http://msdn.microsoft.com/ja-jp/library/bb735940.aspx) Open XML オブジェクト モデルを使用してサーバー側ドキュメント生成ソリューションを構築する (パート 2/2)
例として .NET 3.0 Framework から Open XML を使用する方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。 http://msdn.microsoft.com/ja-jp/library/bb735939.aspx (http://msdn.microsoft.com/ja-jp/library/bb735939.aspx) 932921?
(http://support.microsoft.com/kb/932921/
)
.NET Framework 3.0 のコンポーネントを使用して Office Word 2007 文書および Office Excel 2007 ブックを作成してクライアント コンピュータにストリーム出力する方法 931866?
(http://support.microsoft.com/kb/931866/
)
.NET Framework 3.0 から Office XML ファイル形式およびパッケージング コンポーネントを使用して簡単な Excel 2007 ブックまたは Word 2007 文書を作成する方法 以前のバージョンの Office (Office 2000、Office XP、および Office 2003 など) を実行しているユーザーは、マイクロソフト Web サイトから無料の互換機能パックをインストールすると、Open XML ファイルを表示および編集することができます。互換機能パックをダウンロードしてインストールするには、次のマイクロソフト Web サイトを参照してください。Word/Excel/PowerPoint 2007 ファイル形式用 Microsoft Office 互換機能パック ASP または ASP.NET から Open XML ファイルをストリーム出力する場合は、ストリーム出力するコンテンツ用の適切な MIME (Multipurpose Internet Mail Extension) の種類を用意する必要があります。Office 2007 ファイル用の MIME の種類の一覧については、次の Web サイトを参照してください。http://office.microsoft.com/ja-jp/products/HA101686761041.aspx (http://office.microsoft.com/ja-jp/products/HA101686761041.aspx) http://blogs.msdn.com/vsofficedeveloper/pages/Office-2007-Open-XML-MIME-Types.aspx
(http://blogs.msdn.com/vsofficedeveloper/pages/Office-2007-Open-XML-MIME-Types.aspx)
Office 2007 よりも前のクライアントのみを対象としていて、ソリューションで Open XML を使用する必要がない場合、HTML、XML、RTF など、その他の非バイナリ Office ファイル形式を使用することができます。続いて、結果のテキストが Office で表示されるように、MIME の種類を使用することでこれらのファイルをクライアントにストリーム出力することができます。サーバー上で ASP を使用することにより、ドキュメントを編集したり保存したりするだけでなく、サーバーに返すこともできます。これらのトピック、および実装方法の例の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。 270906?
(http://support.microsoft.com/kb/270906/
)
ASP を使用して RTF (Rich Text Format) ドキュメントを生成し、Microsoft Word にストリーム出力する方法
198703?
(http://support.microsoft.com/kb/198703/
)
クライアント側 VBScript から Excel を自動化する方法
199841?
(http://support.microsoft.com/kb/199841/
)
[XL2003] MIME の種類を使用して IE 内に Excel で ASP の結果を表示する方法 260239?
(http://support.microsoft.com/kb/260239/
)
ASP (Active Server Pages) ページで Excel ファイルの作成時にセルのデータの書式を設定する方法 278973?
(http://support.microsoft.com/kb/278973/
)
ADO を使用して Excel ブックのデータの読み取りおよび書き込みを行う方法 (ExcelADO)
286023?
(http://support.microsoft.com/kb/286023/
)
VB ActiveX コンポーネントを使用して Internet Explorer から Word オートメーションを使用する方法
288130?
(http://support.microsoft.com/kb/288130/
)
[OFF2003] ASP を使用してクライアント側で表示する XML スプレッドシートを作成する方法 業務上、サーバーサイドで Office 97、Office 2000、Office XP、および Office 2003 のバイナリ ファイル形式を作成する必要がある場合は、サードパーティ ベンダが提供する役立つコンポーネントがあります。マイクロソフトはこのようなコンポーネントを提供しないため、自身でソリューションを構築するか、サードパーティ ベンダからソリューションを購入する必要があります。数多くのさまざまなサードパーティ製品が利用できます。すべてのソリューションを調べて、業務に最も合致するベンダを探すことをお勧めします。
Office 97、Office 2000、Office XP、および Office 2003 のバイナリ ファイル形式を直接編集する独自のソリューションを構築する必要がある場合は、Microsoft Open Specification Promise (OSP) の条項の下で無料であるファイル形式の仕様を入手できます。ユーザーが作成するドキュメントまたは製品に対するテクニカル サポートは提供されませんが、ドキュメントの利用は可能です。詳細については、以下の Web サイトを参照してください。http://www.microsoft.com/interop/docs/officebinaryformats.mspx
(http://www.microsoft.com/interop/docs/officebinaryformats.mspx)
また、サーバーサイド ソリューションでは、ファイルをアップロードすることをユーザーに許可し、Web などのメディアで表示するためにサーバーでファイルを作成することが必要な場合があります。現時点でマイクロソフトはこのような機能を提供するための作業を行っています。また Microsoft Excel Services でこの機能の初期バージョンを提供しています。Excel Services は、Microsoft Office SharePoint Server 2007 に搭載されている新しいサーバー テクノロジで、Office SharePoint Server 2007 での Excel ブックの読み込み、計算、および表示を可能にします。Excel Services の詳細については、以下の MSDN (Microsoft Developer Network) Web サイトを参照してください。 Excel Services の概要
http://msdn.microsoft.com/ja-jp/library/ms546696.aspx (http://msdn.microsoft.com/ja-jp/library/ms546696.aspx) [ウォークスルー] Excel Web Services を使用してカスタム アプリケーションを開発する
http://msdn.microsoft.com/ja-jp/library/ms519100.aspx (http://msdn.microsoft.com/ja-jp/library/ms519100.aspx)
Excel Services と Office Open XML 形式を使用して業務アプリケーションを作成する この資料で説明した方法のうち、どの方法が必要性を満たし、ソリューション展開に最善なものであるかを評価する必要があります。この資料で説明した内容によって、すべてのクライアントのあらゆる問題が解決されるかどうかは保証されません。十分にソリューションをテストしてから展開してください。
http://msdn.microsoft.com/ja-jp/library/cc540662.aspx (http://msdn.microsoft.com/ja-jp/library/cc540662.aspx) この資料は以下の製品について記述したものです。
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。" | サポート技術情報の翻訳
|

先頭へ戻る
