VBA6.0です。

ページ内のボタンを自動クリックさせると、javascriptのconfirmが出ます。
さらにそのconfirmのOKボタンも自動でクリックさせたいのですが、objIE.Document.all.btn1.Clickの実行後で止まってしまうようです。
擬似マルチスレットで解決できるのかなと思うのですが、どのように記述したらよいか分かりません。

下記プログラムに書き加えてください。よろしくお願いします。


Dim objIE As Object

Set objIE = CreateObject("InternetExplorer.application")
objIE.Visible = True

objIE.Navigate "URL"

Do While objIE.Busy = True
DoEvents
Loop


objIE.Document.all.btn1.Click (ページ内ボタンのクリック)


----------これでconfirmのOKボタンを押そうとしています。--------------
Dim lngDHnd As Object
Dim lngRc As Object

Const WM_COMMAND = &H111
lngDHnd = GetLastActivePopup(objIE.hWnd)
lngRc = PostMessage(lngDHnd, WM_COMMAND, 2, 0)
----------------------------------------------------------------

回答の条件
  • 1人2回まで
  • 13歳以上
  • 登録:2010/05/25 22:51:04
  • 終了:2010/06/01 22:55:03

回答(2件)

id:p332 No.1

p332回答回数36ベストアンサー獲得回数32010/05/26 00:03:27

ポイント35pt

おそらく、特定のWEBサイトの操作の自動化かと思いますが、confirmを表示させてからconfirmのOKを押すよりも、confirmを実行させずにボタンクリックの動作をさせた方が良いかと思います。

Javascriptで

1.Confirmを表示

2.OKだったら、formをsubmitする

などとなっているとおもいますので、VBでいきなり2を実行すれば良いと思います。

WEBサイトのHTMLソースを見て、ボタンクリックでどのJavascriptコードが実行されているか、動作を追いかけていけば、わりとすぐ見つかる可能性が高いです。

id:after_333sec

<input type="submit" name="a" value="a">

<input type="submit" name="b" value="b" onclick="return confirm('')">

このように同じフォーム内に2つのsubmitボタンがありました。

bの方を押したいのですが、どのようにすればよいでしょうか。

2010/05/26 02:03:08
id:ken3memo No.2

ken3memo回答回数243ベストアンサー獲得回数752010/05/26 05:31:17

ポイント35pt

ボタンを押してから、 GetLastActivePopup 等で処理したいなら、

お隣の質問 http://q.hatena.ne.jp/1272265167#a1012169

   objIE.document.parentWindow.execScript "window.setTimeout(""document.getElementById('test_button').click();"",10);"

が参考になるのでは?

手前味噌のダメURL http://d.hatena.ne.jp/ken3memo/20100428 も何かの参考になれば(笑)

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません