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回まで
  • 登録:
  • 終了:2010/06/01 22:55:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:p332 No.1

回答回数36ベストアンサー獲得回数3

ポイント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

回答回数317ベストアンサー獲得回数115

ポイント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 も何かの参考になれば(笑)

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

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

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

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

回答リクエストを送信したユーザーはいません