[INFO] Excel の COM アドインおよびオートメーション アドイン

文書翻訳 文書翻訳
文書番号: 291392 - 対象製品
すべて展開する | すべて折りたたむ

概要

Microsoft Excel 2002 では、Component Object Model (COM) アドインの他にオートメーション アドインがサポートされています。この資料では、これら 2 種類のアドインの違いについて説明します。

詳細

COM アドイン

COM アドインを使用すると、開発者は Office 2000、Office XP、Office 2003 アプリケーションの機能をユーザー設定の作業用に拡張できます。COM アドインは通常、ツール バー ボタン、フォーム、ダイアログ ボックスのクリックや、ブックの開閉、ワークシートへのデータの入力など Excel に固有のイベントに対する Excel の応答を自動化するために使用します。COM アドインの関数を、ワークシートのセル数式から直接呼び出すことはできません。

COM アドインはインプロセス COM サーバー (ActiveX DLL) であり、IDTExensibility2 インターフェイスを実装する必要があります。すべての COM アドインで、このインターフェイスの 5 つのメソッド、OnConnection、OnStartupComplete、OnAddinsUpdate、OnBeginShutDown、および OnDisconnection をそれぞれ実装する必要があります。

COM アドインをユーザーのシステムにインストールすると、このアドイン用にレジストリ エントリが作成されます。通常の COM 登録の他に、COM アドインが実行される Office アプリケーションに関しても登録されます。Excel で使用される COM アドインは、次のレジストリ キーに登録されます。
HKEY_CURRENT_USER\Software\Microsoft\Office\Excel\Addins\ 
					
このキーには、インストールされている COM アドインごとにサブキーが 1 つずつ含まれます。サブキーの名前は COM アドインの ProgID です。COM アドインのサブキーには、COM アドインのフレンドリ名、説明、読み込み方法を説明する値も含まれます。読み込み方法は、Excel へのアドインの読み込み方法の説明であり、起動時に読み込み、次の起動時のみに読み込み、要求に応じて読み込み、読み込まない、のいずれかです。

COM アドインの読み込みおよびアンロードは、Excel のユーザー インターフェイスでも可能です。これを行うには、次の手順を実行します。
  1. [表示] メニューの [ツールバー] をポイントし、[ユーザー設定] をクリックします。
  2. [ユーザー設定] ダイアログ ボックスで、[コマンド] タブをクリックします。分類の一覧で、[ツール] をクリックします。コマンドの一覧で [COM アドイン] を探し、このコマンドをメニューまたは任意のツール バーにドラッグします。[ユーザー設定] ダイアログ ボックスを閉じます。
  3. 追加した [COM アドイン] をクリックして [COM アドイン] ダイアログ ボックスを表示します。このダイアログ ボックスには、システムにインストールされているすべての COM アドインが表示され、現在読み込まれている COM アドインが選択されます。
COM アドインの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
238228 [HOWTO] Visual Basic で Office 2000 COM アドインを作成する方法
230689 [SAMPLE] Visual C++ で作成した Office 2000 COM アドインのサンプル Comaddin.exe
詳細については、次のマイクロソフト Web サイトを参照してください。
Office アドイン
http://support.microsoft.com/ofd

オートメーション アドイン

COM アドインの他に、Excel 2002 および Excel 2003 ではオートメーション アドインがサポートされています。オートメーション アドインは COM アドインを基に構築され、オートメーション アドインの関数は Excel ワークシートの数式から呼び出すことができます。COM アドインは、IDTExtensibility2 インターフェイスをサポートするインプロセス COM サーバーである必要がありますが、オートメーション アドインはインプロセス、アウトプロセスのどちらの COM サーバーでもかまいません。また、IDTExtensibility2 の実装も必須ではありません。

オートメーション アドインの関数を Excel で使用するには、次の手順を実行します。
  1. [ツール] メニューの [アドイン] をクリックします。
  2. [アドイン] ダイアログ ボックスで、[オートメーション] をクリックします。登録済みの COM サーバーの一覧で、該当するオートメーション アドインをクリックして、[OK] をクリックします。
  3. オートメーション アドインが [アドイン] ダイアログ ボックスに表示されます。[OK] をクリックして [アドイン] ダイアログ ボックスを閉じます。
[アドイン] ダイアログ ボックスの一覧に項目を追加したときや、一覧にあるアドインをクリアしたとき、Excel では変更内容がレジストリに格納されます。Excel では、まず次のレジストリ設定を使用して、アドイン一覧のオートメーション アドインが読み込まれたかどうかが判断されます。
Excel 2002

キー :       HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Excel\Options
文字列 :     OPENx
サンプル値 : /A "ServerName.ClassName"
					
Excel 2003

キー :       HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Options
文字列 :     OPENx
サンプル値 : /A "ServerName.ClassName"
					
文字列値で使用されている /A スイッチは、Excel 2002 および Excel 2003 で新規に採用されたスイッチであり、オートメーション アドインを特定して読み込むために使用されます。オートメーション アドインはすべて要求に応じて読み込まれます。オートメーション アドインの読み込み方法を変更できる設定はありません。

[アドイン] ダイアログ ボックスにあるオートメーション アドインがクリアされると、そのアドインの ProgID と同じ名前のサブキーが、以下のレジストリ キーに作成されます。
Excel 2002

HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Excel\Add-in Manager
					
Excel 2003

HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Add-in Manager
					
このレジストリ設定により、アドイン一覧に追加したオートメーション アドインは、読み込まないと選択された場合であっても、一覧に保持されます。

オートメーション アドインの詳細については、次の「サポート技術情報」 (Microsoft Knowledge Base) を参照してください。
285337 [HOWTO] Excel ワークシート関数用に Visual Basic オートメーション アドインを作成する方法
詳細については、次のマイクロソフト Web サイトを参照してください。
Office アドイン
http://support.microsoft.com/ofd

IDTExtensibility2 を実装するオートメーション アドイン

前述したように、オートメーション アドインでは IDTExtensibility2 を実装する場合がありますが、これは Excel のワークシートからアドインの関数を呼び出すために必須ではありません。オートメーション アドインを、Excel インスタンスを参照するように設定する必要がある場合は、IDTExtensibility2 を実装し、OnConnection の Application パラメータを使用して Excel を自動化することができます。

IDTExtensibility2 を実装するオートメーション アドインは、Excel ユーザー インターフェイスで、[COM アドイン] ダイアログ ボックスと [アドイン] ダイアログ ボックスの両方で読み込むことができます。これらのうち一方のダイアログ ボックスで読み込んだか、両方のダイアログ ボックスで読み込んだかによって、オートメーション アドインの動作は次のように異なります。
  • [アドイン] ダイアログ ボックスのみで読み込んだ場合

    アドインは要求に応じて読み込まれます。アドインの関数は、ワークシートの数式から呼び出すことができます。
  • [COM アドイン] ダイアログ ボックスのみで読み込んだ場合

    アドインは COM アドインとして読み込まれ、読み込み方法はレジストリの設定によって決まります。アドインの関数を、ワークシートの数式から呼び出すことはできません。
  • [COM アドイン] ダイアログ ボックスと [アドイン] ダイアログ ボックスの両方で読み込んだ場合

    アドインの 2 つの異なるインスタンスが読み込まれます。一方のインスタンスは COM アドインとして読み込まれ、もう一方はオートメーション アドインとして読み込まれます。COM アドイン インスタンスでは、レジストリで指定されている読み込み方法が使用され、オートメーション アドインは要求に応じて読み込まれます。この 2 つのインスタンスはそれぞれ独自に動作し、グローバル変数を共有しません。
オートメーション アドインは要求に応じて読み込まれるため、Excel でセル編集モードのときにアドインの読み込み動作が発生することがあります。そのため、IDTExtensibility2 をサポートするオートメーション アドインを開発するときは、アドインを読み込み中に Excel の状態を変更する処理を行わないように注意する必要があります。詳細については、次の「サポート技術情報」 (Microsoft Knowledge Base) を参照してください。
284876 [BUG] オートメーション アドインを読み込むと Excel が異常終了する
(c) Microsoft Corporation 2001, All Rights Reserved. Contributions by Lori B. Turner, Microsoft Corporation.

プロパティ

文書番号: 291392 - 最終更新日: 2005年11月11日 - リビジョン: 3.1
この資料は以下の製品について記述したものです。
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
キーワード:?
kbautomation kbinfo KB291392
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com