人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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)
----------------------------------------------------------------


●質問者: after_333sec
●カテゴリ:コンピュータ
✍キーワード:ALL application as Click const
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● p332
●35ポイント

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

Javascriptで

1.Confirmを表示

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

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

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

◎質問者からの返答

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

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

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

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


2 ● ken3memo
●35ポイント

ボタンを押してから、 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 も何かの参考になれば(笑)

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ