• ベストアンサー

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

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

  • COM オートメーション OLEオートメーション

    「COM オートメーション」と「OLEオートメーション」は 呼び方が違うだけで同じ意味なのでしょうか? OLEの方が古い呼び方なのですか?

  • オートメーション化とルーチン化

    オートメーション化とルーチン化 は同じ意味ですか? 「オートメーション化」をググったら 自動化と言う意味だったのですが 「ルーチンをオートメーション化する」 と使えばいいのでしょうか?

  • OLEオートメーションについて教えてください。

    こんばんは。 pcにMS08-008のセキュリティパッチをインストールすることを検討しているのですが、言葉の意味が難しいので教えてください。 OLE オートメーション?の脆弱性を解決するものらしいのですが、そのOLE オートメーションがJavaScriptやVBScriptによるリクエストを処理する過程に脆弱性が存在する。 http://www.hotfix.jp/archives/alert/2008/ms08-008.html OLEオートメーションとはアプリケーションがデータを共有したり制御したりすることを可能にするもの、というところまではなんとなくわかりました。 エクセルやワードに関係があるってところもなんとなくわかりました。 しかし、データの共有とJavaScriptなどのスクリプトによる処理、ってのがまったくイメージがわかないです。 具体的にどういうことなのかお教えいたたいてもよろしいでしょうか。 よろしくお願いします。

  • オートメーションエラーについて

    こんにちは。palbanです。 現在VBからACCESSにデータを保存するシステムを作成しています。 VBからACCESSの接続にはADOを使用しています。 バージョンはVB6.0SP5,ACCESS2002です。 このシステムをAPI関数のSENDMESSAGEを使用して終了させているのですが、システム終了後以下のような メッセージがでます。 実行時エラー'-2147417848(80010108)': オートメーションエラーです。 起動されたオブジェクトはクライアントから 切断されました。 このエラーの回避方法をご存知の方ご教授願います。 私の方でも調査しましたが修正方法がどうしても わかりません。 宜しくお願いします。

  • このオブジェクトには、オートメーションオブジェクト

    アクセス2010です。 アクセスでフォームにはめ込んでいるサブフォームのデータをフィルタしようとすると ---------------------------------------------------------------------------- このオブジェクトには、オートメーションオブジェクト’カテゴリ’は含まれません。 オブジェクトのプロパティを設定するか、 メソッドを実行するVisual Basicプロシージャを実行しようとしましたが これらのプロパティまたはメソッドが使用できません。 オートメーションオブジェクトでサポートされているプロパティまたはメソッドについては、 コンポーネントのドキュメントを参照してください。 ---------------------------------------------------------------------------- と言うエラーになります。 フォームにカテゴリと言うフィールドは紐づけてないのですが なぜこのエラーが発生するのでしょうか?

  • Excelマクロのオートメーションエラーについて

    以前は良かったExcel2003で作成したマクロプログラムを1部修正して実行時に1回オートメーションエラーがでたら、修正部を元に戻してもオートメーションエラーがでるようになってしまいました。 このプログラムをExcel2007の他のPCで実行してもエラーはでません。 どのようにしたら、オートメーションエラーはでないようにできるでしょうか。

  • オートメーションエラーって表示がでます。PC壊れたのでしょうか?

    オートメーションエラーと表示がでてしまうのですが、何が悪いのか全く分かりません。PC壊れたのでしょうか? 表示されるのは、、、 実行時エラー′-2147024770(8007007e)′: オートメーションエラーです。 指定されたモジュールが見つかりません。 と表示されます。どうすればいいのでしょうか? 何かをインストールすればいいのでしょうか? わかる方よろしくお願いします。

  • OLEオートメーションエラー?

    Windows98のSEで、VisualBasic4.0のプロジェクトを開くと、OLEオートメーションエラーがでます。一体何が原因なのかわかりません。宜しくお願いいたします。 (ちなみにVB4.0の16ビットと32ビットのvbpが混在しています。これは上記エラーに関係あるのでしょうか?)

  • Access VBA から Outlook 呼び出しでオートメーション

    Access VBA から Outlook 呼び出しでオートメーションエラーが発生することがあります。 環境は Access 2003、Outlook 2003 で Access VBA で CreateObject 等を使い Outlook.Application オブジェクトの作成、もしくは GetObject を使って既存のインスタンスを取ろうとすると「オートメーションエラー システムコールに失敗」というエラーが出るときと、出ないときがあります。 具体的には前処理でテーブル作成クエリの実行を挟むとエラーが発生し、挟まないとエラーが発生しません。 オブジェクトの作成の仕方が悪いのかと思い、いろいろと試しましたが結果は同じでした。 テーブル作成クエリはリンクテーブルで覗いているテーブルをローカルのテーブルとして丸コピーしてくることを目的としており、結構サイズが大きく、作成にも少し時間がかかるものです。 どうも決定的な手がかりが見つからず困っております。何かアドバイスございましたらお聞かせください。よろしくお願いいたします。

  • オートメーションエラー

    VBからExcelシート上のPictureBoxに画像を呼び込もうとしていますが、オートメーションエラーが出ます。 どうしてですか?Excel-VBAで同じ事をすると正常に動作します。 'Excel上にあるPictureBoxオブジェクトを取得 Set Image1 = xlSheet.OLEObjects("Image1").Object 'PictureBoxに画像を貼り付ける With Image1 .AutoLoad = True .AutoSize = False .PictureSizeMode = fmPictureSizeModeZoom .PictureAlignment = fmPictureAlignmentCenter .Picture = LoadPicture("C:\MyPicture\...\pict.bmp") ←ここでエラー! End With 開発環境 Win2000(SP2) + VB6.0(SP4) + Excel2000(SP2)

専門家に質問してみよう