• ベストアンサー

オートメーションとはどういう意味ですか?

vbaを勉強してるのですが、「オートメーション」という言葉が頻繁に出てきます。 オートメーションエラーもよく見かけます。 ADOを使ってる時が多いです。 でもオートメーションの意味がよくわからないのですが、教えて下さい。 オートメーション=自動化 と言う言う意味でしょうか? 調べてみると、 「オートメーション」と言う言葉と一緒に 「COM」「コンポーネント」と言う言葉も出てくるのですが、何か関係はありますか?

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

  • ベストアンサー
  • ss-ak
  • ベストアンサー率58% (23/39)
回答No.2

厳密に書くと、物凄く長くなってしまいますので、やや厳密さを欠く、はしょった説明になることをご容赦ください。 ただ、COMとオートメーションの位置付けと関係がわかり、VBAで利用するときに必要と思われる範囲の説明は、なるべくきちんとしたいと思います。 まず、COMというのは、Component Object Modelの頭文字を取ったもので、Windowsの環境上で、プログラム言語に依存しないプログラム部品を実現するための技術です。 COMに準拠して作られたプログラム部品は、Windows上で動作する、ほぼ全てと言って良いくらい、多くのプログラミング言語から利用する事ができます。 ADOも、COMに準拠して作られたプログラム部品セットの1つです。 プログラミング言語により、内部的なデータの取り扱い方や、データの受け渡し方は異なっているため、COMでは、必要に応じてデータの受け渡しの変換を自動的に行うなどの機能が、裏に組み込まれています。 1990年代からの古い技術ですが、今までのWindowsの歴史の中で長く使われてきた技術なので、このCOMに準拠したプログラム部品は膨大な数があり、これらを使うことで、VBAのような簡単なプログラミング言語でも、かなり高度なことも実はできてしまうという、潜在的には強力なパワーを持っている技術だったりします。 (ただし、現在では.Netへの移行に流れが変わっており、長期的な将来性については、あまりないかもしれません) オートメーションは、このCOMの技術を用いて、現在プログラムが動作しているプロセスとは別プロセスで動いているアプリケーションを、あたかもプログラム部品のように呼び出して使えるようにした技術で、例えばExcelで動作しているVBAのマクロから、WordやPowerPoint等の、他のアプリケーションソフトを起動させたり、内部の機能を呼び出したりして、他のアプリケーションを自動操作する事ができます。 自動操作は、オートメーションの使い方の1つで、それが全てではないですが、「オートメーション」の名前の由来は、このような使い方から来たものと思われます。 つまり、オートメーションをサポートしているアプリケーションは、VBAからも、プログラム部品のように簡単に外部からその機能を呼び出して使える、ということです。

SDPNTUPDGM
質問者

お礼

●COMとは、 Windowsの環境上で、プログラム言語に依存しないプログラム部品を実現するための技術 ADOも、COMに準拠して作られたプログラム部品セットの1つ COMを使うとVBAのような簡単なプログラミング言語でも、かなり高度なことも実はできてしまう ●オートメーションとは、 COMの技術を用いて、現在プログラムが動作しているプロセスとは 別プロセスで動いているアプリケーションを、 あたかもプログラム部品のように呼び出して使えるようにした技術. オートメーションをサポートしているアプリケーションは、 VBAからも、プログラム部品のように簡単に外部からその機能を呼び出して使える まとめてみました。 とてもわかりやすいです。 私にとっては難しい事なのにこんなわかりやすくまとめてしまうなんて凄いですね。 ありがとうございました。

その他の回答 (1)

  • sporespore
  • ベストアンサー率30% (430/1408)
回答No.1
SDPNTUPDGM
質問者

お礼

よく読んでみます。

関連するQ&A