文書番号: 311452 - 最終更新日: 2012年5月14日 - リビジョン: 1.0

情報: Visual Studio と Microsoft Office のソリューションを開発します。NET

お知らせお使いのオペレーティング システムには適用しない情報が含まれている場合があります。

目次

すべて展開する | すべて折りたたむ

概要

この資料は作業している開発者向けのリソースです。マイクロソフトの Visual Studio。NET Microsoft Office を使用してソリューションをビルドするには製品のファミリです。この資料で、マイクロソフト開発者ネットワークを補足します。(MSDN) のコンテンツ Office 開発 Visual Studio は 6.0 には、多くのより広いスコープの開発オプション。

この資料で説明します。使い慣れている遷移開発者すぐに基本的なガイドVisual Studio の 6.0 を使用して同じタスクを実行すると Office の開発Visual Studio。NET。サンプルを提供し、任意の既知の問題を指すとマイクロソフトでを使用する場合に発生する可能性があります問題。NET。

内容

詳細

はじめに

(Access、Excel を含む製品の Microsoft Office 系MapPoint、Outlook、PowerPoint、プロジェクト、Visio、Word)、全体が含まれています。さまざまな企業と小規模のために設計された生産性ソフトウェアビジネス ユーザー。エンド ユーザー ツールのスイートでは、Office は、効率的で支援します。作成、共有、およびビジネス情報を管理します。Office もことができます。組織では、製品をカスタマイズしたりを利用するにはOffice 技術を使用して、特定の問題を解決するために。

Office の開発と Visual Studio。NET

さまざまなプログラムを拡張するさまざまな方法は、自動化するのには、統合、または開発ソリューションでは、Office を使用します。場合Office のソリューションを開発するには、MSDN Web サイトを参照してください、「概要」セクションのこの記事は、さまざまな形式の Office を説明します。各トピックに固有のもの開発とリストの記事。

時行うには、次の手順にある Office 開発の種類を決定します。使用する開発ツールを決定することです。この資料の目的です。Visual Studio で Office のソリューションを構築する方法について説明します。NET。両方をカバーします。Microsoft Foundation クラス (MFC) とアクティブななどのアンマネージ言語テンプレート ライブラリ (ATL)、および Visual Basic などのマネージ言語。NET とVisual C# で。どの言語を選択、プロジェクトの依存リソース特定の言語に関する知識。

マイクロソフトがさまざまな実行方法を示すサポート技術情報の記事を作成します。Office よく Visual Studio。NET。多くの資料がないため、この資料でその内容を整理して、提供するためには問題が、プログラムする必要があります、重要な情報効果的に作業します。NET。

重要な機能を変更するのには。NET フレームワーク

Visual Studio を使用するほとんどの開発者です。NET で開発します。マイクロソフトに密接にする言語を指定します。NET フレームワーク。であります。使用する場合に注意する重要な変更をします。NET Framework で Office開発。場合は、Visual Basic、Visual c#、またはサード パーティ製のコードを管理します。言語です。NET は、どのようにする必要があります知っているこれらの変更について理解しています。Office ソリューションを構造化します。

このセクションは、マネージ言語のみを適用します。場合は、使用する予定がない限り MFC または ATL で作業して、安全にこのセクションをスキップします。ビジュアル C++ マネージ拡張プロジェクトのどこかで。次をよう違いに慣れていない場合は、セクションを管理し、アンマネージ言語。

します。NET Framework マネージ コードです。管理コードは、オブジェクト指向、タイプ セーフ、メモリ管理、安全なコードと(ほとんどすべての) ポータブル。このコードを必要に応じて (またはインストール中) にコンパイルされます。中間言語 (IL)、コンピューターに名前が付けられるネイティブ形式から、実際に、プロセッサ上で実行できるコードです。さらに、Microsoft をしました(名前空間) で、ランタイム環境を構成するクラスのセットを定義します。マネージ コードでは、共通言語ランタイムと呼ばれます。共通実行時の言語のすべてのマネージ言語でプログラミングのバックボーンです。NET では、制御する必要する必要があります、要素全体をプログラム。

記述されたプログラムは。NET framework します。本質的に安全より安定しておりより安全であるため、実行するのには以前のバージョンのアプリケーション。ただし、この機能と柔軟性を価格でのものです。、価格ので、コードの管理方法に構造的な違いがあることです。共通言語ランタイム。Office に精通している開発者向け開発 Visual Studio 6.0 では、次の 5 つの重要な機能を検討します。変更、およびこれらの機能の変更をした上で、効果をプロジェクト:

  1. COM の相互運用性いくつかの点では。NET Framework の進化のですがコンポーネント オブジェクト モデル (はマイクロソフトによっていくつかの時間前に構想された COM)、インターネットに変換されました。します。NET Framework は非常に異なるです。COM から劇的な破コンポーネントのアーキテクチャの種類からですCOM 開発者に精通している可能性があること。Office で構築されているため使用すると COM と OLE の周りは、まだ COM インターフェイスを使用する必要があります。Office。Microsoft 早期の段階では、この問題を認識し、サポートを構築前COM 通信 (は。NET 参照する COM 相互運用機能として) には。NETフレームワーク。相互運用性層の目的で追加"shim"の間します。NET コードと、どちらの側のように使用する COM オブジェクト何かにネイティブではないアクセスしていることを知っています。その他単語では、COM オブジェクトのいずれかに類似したが表示されます。NET のオブジェクトに共通の言語実行時、および。NET クライアントがどの COM クライアントでも、com のようなが表示されます。サーバー。Office を実行する場合は、COM 相互運用機能を理解している必要があります。Visual Studio を開発。NET。
  2. バリエーションの死します。NET マネージ言語を使用して共通のデータ型システムでは共通言語ランタイム。このタイプのシステムに関する重要なことはすべてデータ型がデータを処理することができます、「オブジェクト」の 1 つの型からの継承します。必要なくポリモーフィック型 (たとえば、COM の外側を別のまたは OLE バリアント型)そのため。NET Framework のバリエーションを使用しません。場合は、(VBA) または Visual Office コードからマイクロソフトの Visual Basic for Applications のポートします。基本 6.0 は、バリアント型をオブジェクトとして再入力する必要があり、新しいオブジェクトの種類のことができます。その他のデータ型よりオートメーション (IDispatch *) オブジェクトだけが含まれます。支払を閉じるコードがこれらを使用する方法に注意型し、型としてチェックを追加します。必要な場合。
  3. ガベージ コレクション言語使用のガベージ コレクターにメモリ管理を管理します。このメモリ モデルは、ために使用されます。NET のプロジェクトを実行しより適切に拡張参照モデルを使用していた場合。偶発的な数を減らすも役立ちます循環参照によって発生するメモリ リークします。これは正常ですが、副作用は、Visual Basic に精通している人々 に混乱を招く可能性があります。6.0 または VBA には、ガベージ コレクターが非決定的であります。場合、VBA の Visual Basic 6.0 は、リリース直後にオブジェクト参照を解放します。参照されているし、シャット ダウンすることができます、オブジェクトを解放します。これですないです。長く true にします。NET。ガベージ コレクターを離したときのためにオブジェクトがクリーンアップされ、決定論的保てるを示していません。(、Office COM サーバーのような) プログラム メモリよりも長い可能性があります。期待しています。
  4. ジャスト イン タイム (jit: JUST-IN-TIME) のコンパイルマネージ コードは、IL の形式でプラットフォームに中立的な保持されます。これ初めて実行されるときに、- 場のでコンパイルしなければならないということを意味します。マイクロソフトは、高速な JIT 処理をマネージ言語を開発しました、効率的なが、このコンパイル ・ オン ・ デマンドの要件は、クライアントことを意味またはコンポーネントは、コードが管理されていない場合よりも読み込みに少し時間がかかることがあります。さらに、共通言語ランタイムを両方はセキュリティとタイプを確認します。JIT の処理し、実行に基づいてコードを実行しません。環境。
  5. OLE の制限従来の OLE は共通言語ランタイムの一部ではない、ゆっくりと XML と HTML は"オブジェクト"という表現を交換、Microsoft リモート データ ソースへのリンクを SOAP します。ありませんがあります現在、完全な交換用 OLE (すべての事案の) で。NET ではありません。組み込みのサポート サービスをマネージ コードで従来の OLE コンテインメントをします。その結果、新しい Winform パッケージ (Visual Basic と Visual c# の両方で使用)OLE コンテナー コントロールは、含まれません。必要なソリューションがある場合Office の OLE コンテインメント、アンマネージ ホストを開発または、web ブラウザーを使用します。コントロール (またはカスタムの OLE ホスト コントロール) を OLE を処理します。

これらの問題点を念頭に置いてより優れた方法ことができます、Office 開発 Visual Studio で実行するときの違い。NET の比較6.0 の Visual Studio にします。

Visual Studio から Office の自動化。NET

Microsoft Office の自動化に便利で柔軟性のある方法です。Office の機能をカスタム ソリューションに組み込みます。今後しばらくの間Office のバージョンの統合では。NET Framework、過去と現在Office のバージョンはありません。Office を自動化するために必要な量のままです。同じは Visual Studio 6.0 で行った。行う必要がありますので、Office に基づいて、COM です。COM を使用して、プログラムから Office に変更します。いくつかの詳細があります。変更が、全体のアプローチをされていません。

Microsoft を自動化するにはOffice アプリケーション Visual Studio から。NET では、必要をダウンロードしてMicrosoft Office XP のプライマリ相互運用機能アセンブリ (Pia) をインストールします。 Office XP の Pia の詳細については、Microsoft では、記事を表示するには、次の資料番号をクリックします。ナレッジ ベース:
328912? (http://support.microsoft.com/kb/328912/ ) 情報: Microsoft Office XP の Pia をダウンロード可能です。


Pia を使用する開発者XP の Office は、アセンブリがわずかに異なっていることに注意してくださいする必要があります、Office オブジェクト モデル。したがって場合は、コードを変更する必要があります。既存のアプリケーションを移植します。また、Pia は動作、矛盾しています。NET:
  • 非決定的リリース回
  • 既定メソッドのサポートの欠如やプロパティ
  • アイテムにアクセスする方法の相違点コレクション
Office XP の Pia の既知の問題の詳細についてを参照してください。次のマイクロソフト Web サイト:

http://msdn.microsoft.com/en-us/library/aa163989.aspx (http://msdn.microsoft.com/en-us/library/aa163989.aspx)

時Office 開発ソリューションに取り組む、最初に質問する必要があります。Office のバージョンこのプロジェクトと連携するがか。互換性のあります。重要な問題、および特定のバージョンで動作するようにコードが必要な場合多くの開発と初期テストを最初に行う必要があります。Office のバージョンをコードと互換性がある必要があります。たとえば、Office 2000 Office 2000 以降で動作するプロジェクトが必要な場合を使用します。(およびタイプ ライブラリの Office 2000) を開発中。こうすることができます。プロジェクト Office 2000 におよび後で (なくを実行できることを確認してください。必ずしも Office 97 を使用)。 詳細については、次の資料番号をクリックしてください。「サポート技術情報」資料を参照するには。
244167? (http://support.microsoft.com/kb/244167/ ) 情報: の複数のバージョンの office のオートメーション クライアントの作成
Office のバージョンを決定した場合は、作業する必要がありますが、ビジュアルでオートメーションを実行する方法を考慮する必要がStudio します。NET:
  • Visual c のアンマネージ コードと同様、同じを使用します。Visual C 6.0。- または -

  • Visual Basic、Visual c#、または Visual C のマネージ コードを使用します。マネージ拡張、および COM 相互運用機能のサービスを共通の言語でCOM を処理するランタイムを呼び出します。


アンマネージ コード (Microsoft Foundation クラス (MFC) および Active Template Library (ATL)) を使用してオートメーション

アンマネージの COM クライアントおよびサーバーでは、Visual C を構築することができます。.NET の以前のバージョンの Visual C での場合と同様します。MFC と ATLフレームワークがいない実質的に変更に関する COM または OLE、ので、Office のオートメーションを使用して既存のコードは、Visual C に移植できます。NET でほとんどの問題が発生します。さらに、オートメーションを行う方法(MFC のラッパー クラスまたは #import を使用して)、既には何に似ています。理解しています。そのため、新しいテクノロジにはありません。について説明します。



MFC でのクラス ラッパーを作成します。

唯一の変更に慣れている開発者MFC での作業には、Visual Studio の IDE の ClassWizard の削除です。この変更の効果は、Office 用の MFC クラスのラッパーの作成方法アプリケーションの場合は、新しいプロジェクトを開始します。 詳細については視覚でタイプ ライブラリから MFC ラッパー クラスの新しいセットを作成する方法C++ .NET での資料を参照するのには、次の資料番号をクリックして、マイクロソフト サポート技術情報:
307473? (http://support.microsoft.com/kb/307473/ ) タイプ ライブラリを使用して Visual C からの Office の自動化の方法NET
生成されたラッパー クラスとほぼ同じに動作します。Visual Studio 6.0 によって行われるこれらのクラス。Visual Studio を期待することができます。.NET を別のファイルを各インポートされたクラスを作成します。でもあります。問題が、Office を使用する場合は、新しいクラス ジェネレーターを入力します。ライブラリ。 詳細についてはこれらの問題とする手順それらを避けるためを参照するのには、次の資料番号をクリックします。技術情報:
311407? (http://support.microsoft.com/kb/311407/ ) BUG: MFC クラス ウィザード Windows Api や COM インターフェイスのメソッドの間で名前の競合を解決しません。
311408? (http://support.microsoft.com/kb/311408/ ) BUG: タイプ ライブラリから MFC クラスを追加する時に '読み取り専用' 警告


オートメーション [MFC の使用のサンプルします。

詳細については Office を自動化する方法Visual Studio から。NET の MFC では、表示するには、以下をクリックして、記事で、マイクロソフト サポート技術。

Microsoft Excel
308292? (http://support.microsoft.com/kb/308292/ ) 自動化する方法を作成し、C++ を使用して、新しいブックの書式を設定するには、excel の。NET と MFC
308407? (http://support.microsoft.com/kb/308407/ ) C++ から Excel を自動化する方法を指定します。NET と MFC の入力またはアレイを使用して、範囲内のデータを取得するのには.
309301? (http://support.microsoft.com/kb/309301/ ) Visual C を使用して、Excel のイベントを処理する方法を指定します。NET
Microsoft Word
308338? (http://support.microsoft.com/kb/308338/ ) Microsoft Visual C から差し込み印刷を実行するのには Word を自動化する方法です。NET
309294? (http://support.microsoft.com/kb/309294/ ) Visual C を使用して Word イベントを処理する方法を指定します。NET と MFC
Microsoft PowerPoint
308336? (http://support.microsoft.com/kb/308336/ ) 作成し、Visual C で PowerPoint プレゼンテーションを表示するには、オートメーションを使用する方法です。NET と MFC
309309? (http://support.microsoft.com/kb/309309/ ) Visual C を使用して、PowerPoint のイベントを処理する方法を指定します。NET と MFC
Office の共有機能
306686? (http://support.microsoft.com/kb/306686/ ) Visual の C++ からオートメーションを使用して、Office マクロを実行する方法。NET
312626? (http://support.microsoft.com/kb/312626/ ) オートメーションを使用して、Visual C を使用して Office コマンド バーとコントロールを作成する方法NET
310744? (http://support.microsoft.com/kb/310744/ ) Office アプリケーションが Visual C を使用して、表示するダイアログ ボックスを閉じるする方法。NET と MFC

Visual Basic (Visual c#) のマネージ コードを使用したオートメーション

マネージ コードからのオートメーションの Office とは少し異なります以前の Visual Basic のプログラミング。マネージ言語を自動化する際、オブジェクトに直接バインドしません。通信が通過します。ネイティブ変換「ラッパー」の中間します。NET のデータ型と呼び出しにCom (とその逆)。



COM の相互運用性に。NET

共通言語ランタイムの COM 相互運用サービスマネージ コードを実行できます。以前の COM サーバーと通信するのには NET(Office) など、ラッパーをマネージ コードと COM の間を使用してサーバー。ラッパーは、相互運用機能アセンブリと呼ばれます。参照を追加します。COM サーバー (たとえば、そのタイプ ライブラリ) をします。Net Visual Studio.NET はランタイム呼び出し可能ラッパーのコードを生成するのに型情報を使用します。(RCW) をプロジェクトにインポートされる、します。このマネージ コードをコンパイルします。別のアセンブリ (つまり、相互運用機能アセンブリ) に、アクセスするにはします。NET Framework の他のされた場合。NET ライブラリを管理します。RCW を果たすマネージ コードと COM サーバーの間の中間マニュアル。

COM の場合サーバーに書き込まれます。NET 対応、プライマリ相互運用機能アセンブリ提供します。(PIA) がインストールされているし、グローバル アセンブリ キャッシュに登録されています。これらのアセンブリは共有されているし、参照する最適な方法と見なされます、以前の COM サーバーにします。NET のプロジェクトです。現在、Microsoft の Pia を提供します。Office XP (および新しいバージョン) のみ。これらの Pia をダウンロードできるようになりました、また、作品を再配布することができます。 Office XP の Pia の詳細については、Microsoft では、記事を表示するには、次の資料番号をクリックします。ナレッジ ベース:
328912? (http://support.microsoft.com/kb/328912/ ) 情報: Microsoft Office XP の Pia をダウンロード可能です。
自動化する Office を呼び出す場合は、2000、Office/日は、VBA、独自の相互運用機能アセンブリ (IAs) を作成する必要があります。機能拡張、および、Office アプリケーションをオートメーションで起動します。これらのカスタムIAs をアプリケーションの一部として扱われますおよび展開する必要があります、プロジェクトの残りの部分と一緒にアプリケーション フォルダーにします。Visual Studio。NETTlbimp.exe を使用してこれらのアセンブリを自動的に行うことができます。ユーティリティは、カスタム アセンブリで登録する必要がありますいない、グローバル アセンブリ キャッシュにグローバル オブジェクトとして。

詳細についてはCOM 相互運用機能でについて。NET では、「COM 相互運用機能」マイクロソフトで次の MSDN Web サイトの開発者ネットワーク (MSDN) ライブラリ:
高度な COM 相互運用機能マニュアル (MSDN オンライン ライブラリ)
.aspx の http://msdn2.microsoft.com/en-us/library/bd9cdfyx (vs.71) (http://msdn2.microsoft.com/en-us/library/bd9cdfyx(vs.71).aspx)


Office アプリケーションには、ランタイム呼び出し可能ラッパー (RCW) のバインドします。

タイプ ライブラリを相互運用機能アセンブリCOM オブジェクトと通信するには、事前バインディングを使用します。ただし、必要な場合バインドの詳細情報 (たとえば、コードを自動化する必要がある場合は、ジェネリックを維持します。複数の Office を適用する場合、入力しますが、どのような種類を知っているしていません。明示的に)、実行時バインディングでは、Visual Studio でも実行できます。NET。 詳細についてはバインディングの選択肢。Net で、表示するには、次の資料番号をクリックして、記事で、マイクロソフト サポート技術。
304661? (http://support.microsoft.com/kb/304661/ ) Visual Basic を使用する方法です。NET Office のオートメーション サーバーをバインド
302902? (http://support.microsoft.com/kb/302902/ ) Office の自動化サービスと Visual c# の HOW TO をバインドします。NET
遅延バインディング利点はしないことです。RCW を使用 (またはカスタムの相互運用機能アセンブリの構築/出荷するがあり、詳細バージョンに依存しません。欠点はこれを行うすることは困難であることです。Visual Basic。NET Visual Basic 6.0 よりも、遅延がでバインド実行時に Dispid を検索することが場合のパフォーマンスへの影響が低下します。

でバインドする、別の問題の重要性その他のオブジェクトのインスタンス化です。場合相互運用機能アセンブリは、Office、特定のアプリケーション用の RCW を使用します。New演算子を使用するとコントロールはインスタンス化オブジェクトです。内部的には、RCW、適切な COM を呼び出しルーチン (たとえば、 CoCreateInstance) のコードを使用するには、そのアプリケーションの新しいインスタンスを作成します。明示的に制御する場合は、オブジェクトのインスタンス作成やバインドは既にアプリケーションのインスタンスを実行している Visual Basic でGetObjectを使用することができます。NET、または Visual C# では、する場合します。ただし、Office のアプリケーションのみを登録します。自分自身で、実行しているランニング オブジェクト テーブルを獲得し、フォーカスが失われるがある場合)少なくとも 1 つの時間です。このコードで行う場合は、タイミングとフォーカスします。コードの大きな問題です。 詳細については情報を参照するのには、次の資料番号をクリックして、マイクロソフト サポート技術情報:
316126? (http://support.microsoft.com/kb/316126/ ) Visual c# を使用する方法を指定します。Office プログラムの実行中のインスタンスを自動的に NET
316125? (http://support.microsoft.com/kb/316125/ ) Visual C# で。Office アプリケーションのインスタンスを実行するのに接続する、NET エラー
308409? (http://support.microsoft.com/kb/308409/ ) Visual Basic。Office アプリケーションのインスタンスを実行するため、GetObject またはする場合を使用、NET エラー


RCW からのイベントを処理します。

します。NET Framework セーフ、コールバック関数の型をサポートしています。通知メッセージへのポインターを 1 つのクライアントをバックアップする (など、一般的な COM のイベント) または (非同期ブロードキャスト) などの複数のクライアントにします。します。このコールバック メカニズムを処理しますオブジェクトを NET はデリゲートと呼ばれますおよび COM を使い慣れた開発者の代理人としての検討、。(それらを使用できますが、COM のイベントを処理する方法目的の場合)。

場合、イベント メソッドは、タイプ ライブラリから RCW を作成ライブラリに記載されているフォームにラップされている、デリゲート クラスは、イベントを処理するために使用できます。イベントをシンクするには、関数に実装します。バインドされたデリゲートのインスタンスを作成する、イベントを処理します。機能、して、デリゲートを受け取るオブジェクトに添付イベント。例を次に示します。
// in Visual C# where <Formatting Type="B">CellsChange</Formatting> is a function that you have implemented:
 EventDel_CellsChange = new Excel.DocEvents_ChangeEventHandler( CellsChange);
 xlSheet1.Change += EventDel_CellsChange;

' in Visual Basic .NET:
 EventDel_CellsChange = New Excel.DocEvents_ChangeEventHandler(AddressOf CellsChange)
 AddHandler xlSheet1.Change, EventDel_CellsChange
Visual Basic 開発者はWithEvents処理のキーワードこのプロセスを簡略化し、コードの詳細を確認するのには利用できます。読みやすい。WithEventsを使用してオブジェクトの宣言では、Handles キーワードをコールバック関数には、追加できます、Visual Basic。NET は、デリゲートを自動的にバインドされます。ここでは、例:
// in Visual Basic .NET:
 Private WithEvents xlSheet1 As Excel.Worksheet
 Private Sub xlSheet1_Change(ByVal Target As Excel.Range) Handles xlSheet1.Change
   Debug.WriteLine("You Changed Cells " + Target.Address + " on Sheet1")
 End Sub
詳細についてはVisual Basic での両方の方法を使用しての詳細については。NET で、クリックして、「サポート技術情報」資料を参照するには、次の資料番号:
302814? (http://support.microsoft.com/kb/302814/ ) Visual Basic を使用して、Excel のイベントを処理する方法を指定します。NET
RCW は、イベントのデリゲートをしていない場合メソッドのコールバックを動的に提供する必要がある場合、または場合をその他の考慮事項に基づいて変更する必要がある、シンクを設定するのには、COM のIConnectionPointおよびIConnectionPointContainerインターフェイスを使用する必要があります。多くの作業が、可能性があります。信頼性の高い一部のサーバー イベントをシンクする唯一の方法を指定します。 詳細については、次をクリックします。文書番号を使用して、Microsoft Knowledge Base の資料を参照するのには:
308330? (http://support.microsoft.com/kb/308330/ ) Visual Basic で PowerPoint のイベントを処理する方法。NET


Visual Basic (Visual c#) のマネージ コードを使用したオートメーションのサンプル

操作の詳細については。NET、クリックマイクロソフト サポート技術情報の記事を表示するのには、以下の記事番号ベース:

Microsoft Excel
301982? (http://support.microsoft.com/kb/301982/ ) Visual Basic から Microsoft Excel を自動化する方法です。NET
302084? (http://support.microsoft.com/kb/302084/ ) Microsoft Excel から Microsoft Visual c# を自動化する方法です。NET
302814? (http://support.microsoft.com/kb/302814/ ) Visual Basic を使用して、Excel のイベントを処理する方法を指定します。NET
302815? (http://support.microsoft.com/kb/302815/ ) Visual c# を使用して、Excel のイベントを処理する方法を指定します。NET
302094? (http://support.microsoft.com/kb/302094/ ) Visual Basic から Excel を自動化する方法を指定します。入力またはアレイを使用して、範囲内のデータを取得するには、NET
302096? (http://support.microsoft.com/kb/302096/ ) Excel と Visual c# を自動化する方法です。入力またはアレイを使用して、範囲内のデータを取得するには、NET
306022? (http://support.microsoft.com/kb/306022/ ) Visual Basic を使用してデータを Excel ブックに転送する方法を指定します。NET
306023? (http://support.microsoft.com/kb/306023/ ) Visual c# を使用してデータを Excel ブックに転送する方法を指定します。NET
307021? (http://support.microsoft.com/kb/307021/ ) Visual Basic を使用して XML データを Microsoft Excel 2002 に転送する方法を指定します。NET
307029? (http://support.microsoft.com/kb/307029/ ) Visual c# を使用して XML データを Microsoft Excel 2002 に転送する方法を指定します。NET
Microsoft Word
316383? (http://support.microsoft.com/kb/316383/ ) Visual Basic から Word を自動化する方法を指定します。新しいドキュメントを作成するのには NET
316384? (http://support.microsoft.com/kb/316384/ ) Word を Visual c# を自動化する方法です。新しいドキュメントを作成するのには NET
301656? (http://support.microsoft.com/kb/301656/ ) Visual Basic から、差し込み印刷を実行するには、Microsoft Word を自動化する方法です。NET
301659? (http://support.microsoft.com/kb/301659/ ) Visual c# で差し込み印刷を実行するのには、Microsoft Word を自動化する方法です。NET
302816? (http://support.microsoft.com/kb/302816/ ) マイクロソフトの Visual Basic を使用して、Microsoft Word のイベントを処理する方法。NET
302817? (http://support.microsoft.com/kb/302817/ ) Visual c# を使用して Word のイベントを処理する方法を指定します。NET
Microsoft PowerPoint
303717? (http://support.microsoft.com/kb/303717/ ) 作成し、Visual Basic で PowerPoint プレゼンテーションを表示するには、オートメーションを使用する方法です。NET
303718? (http://support.microsoft.com/kb/303718/ ) オートメーションを使用して作成および Visual c# で PowerPoint プレゼンテーションを表示する方法NET
308330? (http://support.microsoft.com/kb/308330/ ) Visual c# で PowerPoint のイベントを処理する方法。NET
308825? (http://support.microsoft.com/kb/308825/ ) Visual c# で PowerPoint のイベントを処理する方法。NET
Microsoft Access
317113? (http://support.microsoft.com/kb/317113/ ) Visual Basic から Microsoft Access を自動化する方法を指定します。NET
317114? (http://support.microsoft.com/kb/317114/ ) Microsoft Access から Visual c# を自動化する方法NET
Microsoft Visio
305199? (http://support.microsoft.com/kb/305199/ ) Visual Basic と Visio を自動化する方法です。NET
Microsoft MapPoint
305200? (http://support.microsoft.com/kb/305200/ ) Visual Basic を使用すると、MapPoint を自動化する方法NET
302897? (http://support.microsoft.com/kb/302897/ ) MapPoint 2002 の制御を自動化して、マップ Visual Basic で HTML として保存する方法です。NET
Office の共有機能
303017? (http://support.microsoft.com/kb/303017/ ) オートメーションを使用して、Visual Basic と Office コマンド バーとコントロールを作成する方法を指定します。NET
303018? (http://support.microsoft.com/kb/303018/ ) オートメーションを使用して Office コマンド バーとコントロールを Visual c# で作成する方法。NET
302281? (http://support.microsoft.com/kb/302281/ ) Visual Basic を使用して、Office のオートメーション サーバーのウィンドウ ハンドルを取得する方法NET
302295? (http://support.microsoft.com/kb/302295/ ) Visual c# を使用して、Office のオートメーション サーバーのウィンドウ ハンドルを取得する方法NET
306682? (http://support.microsoft.com/kb/306682/ ) Office の Visual Basic からオートメーションを使用してマクロを実行する方法。NET
306683? (http://support.microsoft.com/kb/306683/ ) Office オートメーションから Visual c# を使用してマクロを実行する方法。NET
303294? (http://support.microsoft.com/kb/303294/ ) 取得し、Office Visual Basic でのドキュメントのプロパティを設定するには、オートメーションを使用する方法です。NET
303296? (http://support.microsoft.com/kb/303296/ ) オートメーションを使用して、Office 文書のプロパティを Visual c# に設定して.NET
307292? (http://support.microsoft.com/kb/307292/ ) 方法、Office アプリケーションで Visual Basic を表示するダイアログ ボックスを閉じます。NET


マネージ コードからのオートメーションに関する既知の問題

共通言語ランタイムがガベージ コレクションを使用するためコレクターは、メモリ管理、および、RCW 自体がマネージであるのでオブジェクトは、オートメーション オブジェクトの有効期間保証がないでを終了するのには参照を解放すると、すぐの決定的な方法で。RCW がガベージ コレクションのためのマークし、ガベージ コレクターが解放されます。多くのメモリを解放するには。つまりは自動化することですが、Office アプリケーションは、アプリケーション可能性がありますまま読み込まれているため、ガーベジコレクターは、まだ RCW を解放がないです。 詳細については、次をクリックします。文書番号を使用して、Microsoft Knowledge Base の資料を参照するのには:
317109? (http://support.microsoft.com/kb/317109/ ) PRB: オートメーションから Visual Studio と Office のアプリケーションは終了しません。NET のクライアント
詳細についてはOffice オブジェクトを使用する場合が発生する可能性があります問題についてマネージ コードを参照するのには、次の資料番号をクリックしてください。技術情報:
315981? (http://support.microsoft.com/kb/315981/ ) Visual Basic。「[方法] は、継承インターフェイス間であいまいなエラー メッセージ」Office のオートメーションを使用する場合を NET します。
316653? (http://support.microsoft.com/kb/316653/ ) PRB: WithEvents とデリゲートを使用して Excel から Visual Basic イベントを処理するにエラーが発生しました。NET または Visual C# で。NET
320369? (http://support.microsoft.com/kb/320369/ ) BUG: 古いファイル形式または Excel 2002 を自動化する際の無効なタイプ ライブラリ エラー
317157? (http://support.microsoft.com/kb/317157/ ) PRB: Access 10.0 タイプ ライブラリには、Visual Studio を参照したときのエラー。NET

Office Web ソリューションを ASP で。NET

ASP。NET Visual Studio の新しい開発プラットフォームです。NET開発者がエンタープライズ クラスのアプリケーションを作成することができます。ASP。NET ことができます。任意の Web アプリケーションを開発します。NET 対応言語と実行するには豊富な機能の利点を。NET フレームワーク。ASP。NetWeb アプリケーションのユーザー インターフェイスを構築することができます。Webフォームのコード ビハインド (コードで、Web アプリケーションのユーザー インターフェイスを提供します。実行には、ページの出力を作成する) ページが実行されるは、サーバーのコンピューター。マイクロソフトは、Office を自動化することを推奨していませんWeb フォームからの製品またはその他の非対話型からを自動化することアカウント。 詳細についてをクリックして、「サポート技術情報」資料を参照するには、次の資料番号:
257757? (http://support.microsoft.com/kb/257757/ ) Office のサーバー サイド オートメーションについての情報:
サーバー サイド オートメーションの他の方法が含まれます。クライアント サイド オートメーション、多目的インターネット メール拡張機能 (MIME) のストリーミングコンテンツ、および、Office Web コンポーネント。これらの各メソッドに記載されています。次のセクションでは。

Office Web コンポーネントで ASP を使用します。NET

Office Web コンポーネント (OWC) の提供を含めるにはOffice 機能で、Web プロジェクトです。コンポーネントは、ASP で使用できます。NETクライアント側でコントロールとして任意の HTML ページからでしょう。さらに、OWC10 (Office XP)、適切なサーバー側に適切な機能を提供します。サイズが制限された Web サイトのコンポーネント。 詳細についてはどのように OWC 10 を asp のサーバー サイド ソリューションで使用できます。NET で、クリックして、「サポート技術情報」資料を参照するには、次の資料番号:
303016? (http://support.microsoft.com/kb/303016/ ) Office XP のグラフ コンポーネントと ASP でデータセットを使用する方法を指定します。NET
315695? (http://support.microsoft.com/kb/315695/ ) ASP を使用して作成された XML Web サービスによって生成された XML データを Office XP の Web コンポーネントを使用する方法です。NET

ASP からのストリーミングの文書を使用します。NET

Office Web コンポーネントの機能がないかどうかは、必要な Office アプリケーションを起動するのには、HTML ページを構成することができます。クライアント コンピューター、し、Web サーバーからデータをロードします。ユーザーことができます。変更するのには、編集するには、またはデータを保存するには、Office のフルパワーを使用して、返します。

いくつかの方法を使用してデータを取得することができます、クライアントは XML Web サービスや MIME コンテンツなど。Web の XML の統合サービスは、Visual Studio を新たに追加します。NET。Visual Studio。NET ことができます。開発者を簡単に作成し、XML Web サービスを利用します。XML Web サービス標準の Web プロトコルを使用してユーザーにサービスを提供します。ユーザーが使用できる、Visual Studio。Net アプリケーションを作成または Microsoft SOAP の Toolkit を使用して接続するにはXML Web サービスです。Soap Toolkit の詳細についてを参照してください、次のマイクロソフト開発ネットワーク (MSDN) Web サイト。
http://msdn.microsoft.com/en-us/library/aa286526.aspx (http://msdn.microsoft.com/en-us/library/aa286526.aspx)
さらに、Office XP の Web サービスの Toolkit ことができます。開発者を使わずには、VBA から直接 XML Web サービスを参照するのには、.NET フレームワーク。

クライアント コンピューターにデータを送信する別の方法です。MIME の種類を使用してコンテンツをストリーム配信します。Web は、MIME の種類を変更した場合は、ページ、ブラウザーの特定の値に関連付けられたアプリケーションを起動することデータを表示します。この方法では、あらゆる種類のデータを開くことができますを使用すると、リッチ テキスト形式 (RTF)、HTML、およびバイナリ データを使用して) などの Office のアプリケーションコンテンツの種類を設定すると、クライアントに送信できます。ASP。Netコントロールが、コンテンツ タイプ、Web クライアントに送信される HTML を生成します。Office では、コントロールの内容を表示するページを設定することができます。アプリケーション。 の詳細についてを参照するのには、次の資料番号をクリックします。技術情報:
318425? (http://support.microsoft.com/kb/318425/ ) ASP を使用してバイナリ ドキュメントを送受信する方法Net のサービスと Visual C# で。NET
318756? (http://support.microsoft.com/kb/318756/ ) PRB: Excel と Word のコンテンツから ASP が期待どおりにストリームはありません。NET
311461? (http://support.microsoft.com/kb/311461/ ) ASP を使用する方法を指定します。NET または Visual Basic。Microsoft Word 2002 で、リッチ テキスト形式 (式 RTF) に XML を変換する NET
319180? (http://support.microsoft.com/kb/319180/ ) Visual Basic を使用してデータセットを XML スプレッドシートを Excel を変換する方法。NET と ASP。NET
317719? (http://support.microsoft.com/kb/317719/ ) ASP で、データ グリッド内のデータをエクスポートする方法Microsoft Excel への NET web フォーム
316934? (http://support.microsoft.com/kb/316934/ ) ADO を使用する方法を指定します。取得し、Visual Basic を使用して Excel ブックのレコードを変更するには、NET を指定します。NET
307033? (http://support.microsoft.com/kb/307033/ ) ASP を使用して XML Web サービスを使用する方法を指定します。NET は、Office の VBA マクロでは、Word または Excel から

Visual Studio を使用して Office の機能を拡張します。NET

内の Office を実行するのには、拡張可能なコンポーネントの作成は常にです。Office の開発の重要な部分をされて。Office 2000 と XP の OfficeCOM を使用して、ホスト アプリケーションのプログラムの拡張を許可します。Office XP のアドインがドキュメントのコンテンツを拡張する機能が導入されていますSmartTag 認識エンジンまたはアクション コンポーネントを使用します。両方これらのソリューションは多くの利点を考慮してください COM のルートと、Visual Studio のいずれかをビルドする前に、完全にコンパイル済みの COM コンポーネント.NET。

ただしを使用するために設計を必要とする場合。NET の機能、またはそのことができます。それ以外の場合を使用してからメリットを享受します。NET では、両方の種類のアドインを作成できます。Visual Studio。NET。方法に精通している開発者 COM アドインまたはVisual Studio 6.0 で動作するスマート タグは、以下に注意する必要があります。
  1. COM アドインが登録する必要があります。既定では、管理Visual Basic または Visual c# で行われる Dll は COM コンポーネントとして機能しません。それらを登録するには、ビルド オプションのプロジェクトのプロパティの [ COM 相互運用機能に登録値をTrueに設定することがあります。
  2. Office のコンポーネントを正しくロードするには、厳密な名前を付けるコンポーネント、および、それをグローバル アセンブリ キャッシュ (GAC) に登録します。で既定は、一般的です。NET DLL プロジェクトはありません。
  3. マネージ コードはネイティブではないため、COM レジストリエントリは、コンポーネントを指す場合、します。NET ランタイム エンジン (mscoree.dll)アセンブリ。Mscoree.dll はデジタル署名されていないため、Office を決定するのではデジタル署名に基づいて安全かどうか、ユーザーを表示すると、有効または、追加であっても無効にするには、デジタルアセンブリに署名します。詳細についてを参照してください。Office のセキュリティとマネージ コードこの資料で後述します。
Office の現在のバージョンが設計されたことに注意してください。COM を回避し、周りには設計されていません。NET。パフォーマンスに重要な要因である場合プロジェクトの成功を考慮して、アンマネージ言語 (MFC などを使用してATL では、または Visual Basic 6.0)。



COM アドイン

COM アドインの最も一般的な機能拡張ソリューションのです。開発者によって使用されます。完全にアドインがホストとを統合するにはアプリケーションは、開発者はアプリケーションからアドインを自動化する必要があります。のこのため、開発者が精通していることが重要です、 Visual Studio から Office の自動化.NET この資料で前述のセクション。

詳細については、基盤を提供する方法COM アドインでの Visual Studio を確認します。Net で、する次の資料番号をクリックします。資料、マイクロソフト サポート技術参照してください。
302896? (http://support.microsoft.com/kb/302896/ ) Visual Basic を使用して Office の COM アドインをビルドする方法。NET
302901? (http://support.microsoft.com/kb/302901/ ) Visual c# を使用して、Office COM をビルドする方法。NET
316723? (http://support.microsoft.com/kb/316723/ ) PRB: Visual Studio。NET 共有アドインの Office COM アドイン ダイアログ ボックスに表示されません。

スマート タグ

スマート タグを Office で導入された新しいテクノロジがXP。スマート タグは、新しいタイプのドキュメントとのやり取りを提供します。現在のところ、スマート タグは、Microsoft Word 2002 と Microsoft Excel 2002 でのみ動作します。のスマート タグの詳細については、スマート タグ ソフトウェア開発を参照してください。キット (SDK) には、次のマイクロソフト開発ネットワーク (MSDN) Web サイト。
Microsoft スマート タグ SDK (http://www.microsoft.com/downloads/details.aspx?familyid=3d8edcee-0246-43ef-a70f-94c0899f1e8f&displaylang=en)
方法の詳細についてSmartTag Visual Studio を使用してアドインを作成するには。Net で、次をクリックしてください文書番号を使用して、マイクロソフト サポート技術記事を表示するには:
306058? (http://support.microsoft.com/kb/306058/ ) Visual Basic を使用して、Office XP のスマート タグ DLL を作成する方法。NET
306422? (http://support.microsoft.com/kb/306422/ ) Visual c# を使用して、Office XP のスマート タグ DLL を作成する方法を指定します。NET

Office のセキュリティとマネージ コード

マネージ コードはネイティブではないため、COM のレジストリ エントリを作成ビルドでは、Office コンポーネントの。NET をポイントがします。NET ランタイムエンジン (mscoree.dll) と、アセンブリではありません。Mscoree.dll でないためデジタル署名し、Office - に基づく安全かどうかを決定します。デジタル署名ユーザー可能性があります、マクロの警告ダイアログ ボックスが表示、ボックス署名する場合でもを有効にするか、アドインを無効にするように求められます。アセンブリ。
316724? (http://support.microsoft.com/kb/316724/ ) PRB: Office アプリケーションを起動すると「Mscoree.dll がマクロを含む」プロンプト
このマクロの警告を回避するには、"shim"を使用します。コンポーネント。開発と配置の詳細については、shim のソリューション、マイクロソフト開発者ネットワークの次の資料を参照してください。(MSDN)Web サイト:
展開の管理対象 COM アドインの Office XP の
.aspx の http://msdn2.microsoft.com/en-us/library/aa164016 (office.10) (http://msdn2.microsoft.com/en-us/library/aa164016(office.10).aspx)

Office XP のスマート タグ スマート タグ Shim ソリューションを展開するを使用してを管理
.aspx の http://msdn2.microsoft.com/en-us/library/aa163615 (office.10) (http://msdn2.microsoft.com/en-us/library/aa163615(office.10).aspx)

COM アドインの Shim ソリューションを使用して、マネージ COM アドインの Office XP を展開するには
.aspx の http://msdn2.microsoft.com/en-us/library/aa140200 (office.10) (http://msdn2.microsoft.com/en-us/library/aa140200(office.10).aspx)

OLE ドキュメントとストレージ

Visual Studio。NET の新しい機能を提供しません。編集または Windows アプリケーション内の Office のドキュメントを表示します。実際にはVisual Basic に精通している開発者は、手順と同じように表示されます可能性があります。新しく変更された OLE コンテナー コントロールの必要があるなくなるためにバックアップします。 詳細については、次の資料番号をクリックしてください。「サポート技術情報」資料を参照するには。
304562? (http://support.microsoft.com/kb/304562/ ) 情報: Visual Studio。NET は、OLE コンテナー コントロールを Windows フォームの提供しません
ただし、これは理由です。OLE のです。COM ベースとします。NET ではありません。クロスプラット フォームのデザインをするには共通言語ランタイム、OLE ソリューションできませんが密接に、フレームワーク。ソリューションは OLE 機能が必要な場合は、使用することができます、WebBrowser コントロールまたはカスタムの OLE ドキュメント ビューアー。 詳細については情報を参照するのには、次の資料番号をクリックして、マイクロソフト サポート技術情報:
304643? (http://support.microsoft.com/kb/304643/ ) Visual Basic で、Office のドキュメントを開くには、WebBrowser コントロールを使用する方法です。NET
304662? (http://support.microsoft.com/kb/304662/ ) Office のドキュメントを開く Visual c# を使用して、WebBrowser コントロールを使用する方法。NET
方法の詳細についてアンマネージ MFC または ATL プロジェクトを既存の OLE 機能を使用してビルドするのには、ソリューション内のアーティクルを表示するには、次の資料番号をクリックして、マイクロソフト サポート技術情報:
316587? (http://support.microsoft.com/kb/316587/ ) C++ に埋め込まれた Office ActiveX ドキュメントを自動化する方法です。NET
316207? (http://support.microsoft.com/kb/316207/ ) 埋め込むし、C++ を使用して文書を自動化する方法NET と MFC

この資料は以下の製品について記述したものです。
  • Microsoft Visual Studio .NET 2002 Academic Edition
  • Microsoft Visual Studio .NET 2002 Enterprise Architect
  • Microsoft Visual Studio .NET 2002 Professional Edition
  • Microsoft Visual Studio .NET 2002 Enterprise Developer
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual C++ .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Office 2000 Developer
  • Microsoft Visual J# .NET 2003 Standard Edition
  • Microsoft Visual Studio .NET 2003 Professional Edition
  • Microsoft Visual Studio .NET 2003 Academic Edition
  • Microsoft Visual Studio .NET 2003 Enterprise Architect
  • Microsoft Visual Studio .NET 2003 Enterprise Developer
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C++ .NET 2003 Standard Edition
キーワード:?
kbhowtomaster kbinfo kbmt KB311452 KbMtja
機械翻訳機械翻訳
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:311452? (http://support.microsoft.com/kb/311452/en-us/ )
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"