• ベストアンサー

Excelのアドインと参照設定の違いについて

現在、Excel2002を利用しているのですが、Excelのアドインと参照設定の違いについて教えていただければと存じます。 Excelのアドインを、ツール→アドインで登録する場合と VBEからツール→参照設定で登録する場合で、全く同じことができてしまうのですけれども、 両者に何か違いがあるのでしょうか。 そもそも、こういうときはこちらを利用すべきというのがあったら、教えていただければと思います。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 >全くの初心者という訳ではありません。 結局のところ、具体的にどういう問題があるのか分かりませんので、それなら、一度、VBEditor での参照設定の仕組みをいろいろ試してみると良いです。 一番顕著なのは、Word ですね。Wordは、マクロを組むと、自動的に、参照設定されます。 おそらく、Document そのものに、マクロ(プロシージャ)を入れさせないための措置だと思います。 また、Access は、VBAで、参照設定の取り外しが可能です。Access は、あまり参照設定自体を触ることはない代わりに、そういうコードに出会うことがあります。 Excelにも同様にあるのですが、Access ほどではありません。 Excelの場合は、Shell やVBScript.RegExp などのオブジェクトやDAO, ADO などを参照設定するのがほとんどではありませんか? また、Visual Basic 等で、dll ファイルを作って、レジストリに登録したものは、参照設定して、呼び出しが可能になります。COMアドインとは、その点で違います。 ワークシート用のAddin とは、基本的に比べようがないのですが、その違いがはっきりするかと思います。

109dk1
質問者

お礼

返信が遅くなってしまい申し訳ございません。 おっしゃられた通りに自分で試してみようかと思います。 度重なるアドバイスありがとうございました。

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 具体的な内容のない質問は難しいです。 VBAをお使いになっていて、良く分からない部分があるとかでしょうか。VBA の経験はどのぐらいですか? 例えば、Excelでアドインを作ったけれども、それは、VBEditor 側の参照設定に出てきているが、それはどうしたらよいのか、とか。 ある程度のVBAプログラミングの経験がないと、理解しないと思います。もし、VBAをお使いにならないのなら、VBEditor 側の参照設定については考えないほうがよいと思います。 それと、VBEditor 側の参照設定は、VBA上で、Acitve Xコントロール(OLEオブジェクト)を利用する以外には、あまり出会うことがないのではないと思います。ワークシートのアドインとはまったく違う次元の話です。 >ワークシート上のアドイン : ワークシートから呼ぶことができ、VBA から呼び出すことができない >VBEditor 上の参照設定 : VBA から呼ぶことができ、ワークシートから呼び出すことができない。 前回、そのような書き方をしたつもりはありませんが、ワークシートから呼び出すものなど何もありません。VBAで呼び出すものは、VBAプロジェクトやプログラム(ライブラリ)です。 あえて答えるなら、「VBEの参照設定は、プログラム上のプロテクトがされていなければ、参照設定にチェックを入れれば、その中のプロシージャは利用出てきます」と答えるしかありません。しかし、最初の時点で、ワークシートのアドインと参照設定とをイーブンに考えてしまうことに誤解があるのだと思います。使う本来の目的が違うのです。

109dk1
質問者

お礼

素早い回答ありがとうございます。 VBA の経験はそんなに多くはないのですが、全くの初心者という訳ではありません。 完全に理解できた訳ではないのですが、もう少し自分で調べてみようと思います。 ありがとうございました。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。 >VBEからツール→参照設定で登録する場合で、全く同じことができてしまうのですけれども、 両者に何か違いがあるのでしょうか。 具体的に何を指すのか良く分かりません。VBEditor 上の参照設定とアドインは、同じ機能を持つものはひとつもないはずです。たぶん、VBEditor 上の参照設定とワークシート上のアドインとのことではないでしょうか? VBEditor から参照設定させるものは、他の言語で作られたタイプライブラリかダイナミック・リンク・ライブラリ(dll)、Active Xコントロール(ocx)、それ以外は、xla/ xlam アドイン・ファイルや一般ブックなどです。VBEditor 上で、基本的に参照設定する目的はプロジェクトを共有化(グローバル化)させるためです。ワークシート側のアドインの場合は、アドイン型は、xla/xlam やアドイン型ブックをコンパイルした、xll のファイルで、そこでマクロを実行させますが、Excelが呼び出せるものに限られます。 >こういうときはこちらを利用すべきというのがあったら、教えていただければと思います。 それは具体的なものがないと何も言えないし、製作時に使用目的を決めていますから、ユーザーが、どちらがどうということはないはずです。「分析ツール」だけが、設定がおかしいのは、もともと、Ver.5 の時に作られたもので、古過ぎるからだと思います。郵便番号ウィザードは、Ver.97 時代のもので、事実上、プロジェクトをVBEditor 側では使えないようにしてしまいましたので、ワークシート専用です。 また、VBEのツール→アドインは、基本的には、COMアドインだと思います。作り方はOffice 専用として作るのですが、VBEditor のアドイン可能なものは、例えば、APIビューワーとか、デベロッパー・バージョンのツールとかで、一般の方たちが、使うことはありません。 質問の主旨にもよりますが、詳しくしろうとすると、返って分かりにくくなってしまうのではないでしょうか。また、今は、過去のものに対して、詳しい資料が手に入りにくいので、もし、開発レベルでお聞きになっても、古いものには手が付けられないはずです。

109dk1
質問者

お礼

丁寧なご回答ありがとうございました。 回答の中にあるとおり、VBEditor 上の参照設定とワークシート上のアドイン の違いがよく分からなかったので質問させていただきました。 回答でもご指摘いただいているのですが、あまり詳しくないため、 念のため確認させていただければと存じます。 ワークシート上のアドイン : ワークシートから呼ぶことができ、VBA から呼び出すことができない VBEditor 上の参照設定 : VBA から呼ぶことができ、ワークシートから呼び出すことができない。 上記の認識で正しいでしょうか(もっともそんなに簡単なものではないのかもしれないのですが。。。)