プロが教える店舗&オフィスのセキュリティ対策術

・SendKeysはwindowsに対してキーを送る
・ExecWBはエクセルを操作する際にキーを送る
の違いですか?

SendKeysとExecWBは同じようなものと思って正解ですか?

A 回答 (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 …
に記載されていますが、[ExecWB メソッド] の引数である「OLECMDID cmdID」について掲載されている
●OLECMDID enumeration
http://msdn.microsoft.com/en-us/library/ms691264 …
のページを参照しても、実際の使い方がよく解らず、WEB検索しても [ExecWB メソッド] の使用例は殆ど掲載されていません。


 IEオブジェクトの操作に関するご質問で、よく参照先に示される「三流君」さんのページ
●IE 操作 .ExecWB でコマンド実行(検索したかったけど)
http://www.ken3.org/vba/backno/vba112.html
でも、[ExecWB メソッド] の [OLECMDID_FIND] で、ブラウザの検索機能を扱うことができずに、結局、
>SendKeysで逃げた
と書かれています。


 IEオブジェクトを扱って、エクセルVBAからブラウザを操作する、という手法につきましては、対象のWEBページの作りに大いに左右されますので、実際には、ケースバイケースで、逐一コードを組み立てていかなければならないことが殆どかと存じますが、「SendKeysとExecWBの違い」は、ザクッと申せば「コード作成者側の期待度と、期待する操作の完遂度の違い」ではないかと存じます。
    • good
    • 0
この回答へのお礼

私が、言いたかったけど知識が足りなくてうまく表現できなかったことを
DOUGLAS_様は言ってくれました!

[ExecWB メソッド]の使い方は謎な部分が多いようですね。
私も3流君のページよく見ます!勉強になりますよね。


 ありがとうございました。大変参考になりました。

お礼日時:2013/01/24 20:31

こんにちは。



>SendKeysとExecWBは同じようなものと思って正解ですか?

まったく違う所のものを比較して、同じようなものかとは、質問の意図が分かりません。
質問する前に、最低限のことは調べてください。

>・SendKeysはwindowsに対してキーを送る
windows? 単に、キーストロークを送信しているだけでしょう?
ただ、その送信側のオブジェクトが、ExcelやWordなどのApplicationなのか、VBScript とかなのか、というだけで、受信側は、オープンされている側がいくつかあるというわけです。受信側は、それが、何かを特定はできません。

>・ExecWBはエクセルを操作する際にキーを送る
Excelとは無縁の存在です。

http://d.hatena.ne.jp/ken3memo/20090708/1247023283
(下半分)

ExecWBは、IEやWebBrowser のコマンドを実行するためのメソッドです。
    • good
    • 0
この回答へのお礼

私は何か勘違いをしていたようですね。
比較できるものだと思っていました。

ExecWBはエクセルに対して操作するものだと思ってました。
だって頭文字が似てるから・・・

お礼日時:2013/01/24 20:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!