• ベストアンサー

SendKeysとExecWBの違いは?

・SendKeysはwindowsに対してキーを送る ・ExecWBはエクセルを操作する際にキーを送る の違いですか? SendKeysとExecWBは同じようなものと思って正解ですか?

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

  • ベストアンサー
  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.2

#ご質問の文章が少し欠けているようですが。。。  「Excel から "InternetExplorer.Application" によってWEBページを操作する場合に、SendKeys と ExecWB とではどのような違いがあるのか?」というご質問と解釈してお答えいたします。  それぞれのザクッとした意味は #1 さんがお書きのようなことかと存じます。  しかし、実際に [SendKeys ステートメント] を使ってみると、意図しないタイミングでキーストロークが送られることがままあります。  しかも、IEオブジェクトを扱っているときには、 While .Busy Or .ReadyState <> 4: DoEvents: Wend などで、ブラウザの準備が整うまで待ってから操作を行なうことが殆どですが、このタイミングで [SendKeys ステートメント] によって、ブラウザを操作することは、至難の業かと存じます(100%の確率で達成できる保証がありません)。  したがって、意図する操作を完遂するためには、もともとブラウザを操作するように設計されている [ExecWB メソッド] を使った方がよいのではないか、というような考え方になったのではないかと思われます。  [ExecWB メソッド] の概要は、 ●IWebBrowser2::ExecWB Method http://msdn.microsoft.com/ja-jp/library/aa752117(v=vs.90).aspx に記載されていますが、[ExecWB メソッド] の引数である「OLECMDID cmdID」について掲載されている ●OLECMDID enumeration http://msdn.microsoft.com/en-us/library/ms691264(v=vs.85).aspx のページを参照しても、実際の使い方がよく解らず、WEB検索しても [ExecWB メソッド] の使用例は殆ど掲載されていません。  IEオブジェクトの操作に関するご質問で、よく参照先に示される「三流君」さんのページ ●IE 操作 .ExecWB でコマンド実行(検索したかったけど) http://www.ken3.org/vba/backno/vba112.html でも、[ExecWB メソッド] の [OLECMDID_FIND] で、ブラウザの検索機能を扱うことができずに、結局、 >SendKeysで逃げた と書かれています。  IEオブジェクトを扱って、エクセルVBAからブラウザを操作する、という手法につきましては、対象のWEBページの作りに大いに左右されますので、実際には、ケースバイケースで、逐一コードを組み立てていかなければならないことが殆どかと存じますが、「SendKeysとExecWBの違い」は、ザクッと申せば「コード作成者側の期待度と、期待する操作の完遂度の違い」ではないかと存じます。

ogfrbwdv
質問者

お礼

私が、言いたかったけど知識が足りなくてうまく表現できなかったことを DOUGLAS_様は言ってくれました! [ExecWB メソッド]の使い方は謎な部分が多いようですね。 私も3流君のページよく見ます!勉強になりますよね。  ありがとうございました。大変参考になりました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

こんにちは。 >SendKeysとExecWBは同じようなものと思って正解ですか? まったく違う所のものを比較して、同じようなものかとは、質問の意図が分かりません。 質問する前に、最低限のことは調べてください。 >・SendKeysはwindowsに対してキーを送る windows? 単に、キーストロークを送信しているだけでしょう? ただ、その送信側のオブジェクトが、ExcelやWordなどのApplicationなのか、VBScript とかなのか、というだけで、受信側は、オープンされている側がいくつかあるというわけです。受信側は、それが、何かを特定はできません。 >・ExecWBはエクセルを操作する際にキーを送る Excelとは無縁の存在です。 http://d.hatena.ne.jp/ken3memo/20090708/1247023283 (下半分) ExecWBは、IEやWebBrowser のコマンドを実行するためのメソッドです。

ogfrbwdv
質問者

お礼

私は何か勘違いをしていたようですね。 比較できるものだと思っていました。 ExecWBはエクセルに対して操作するものだと思ってました。 だって頭文字が似てるから・・・

すると、全ての回答が全文表示されます。

関連するQ&A