- 締切済み
VBAからIEの操作
グーグルをIEで開いてVBA(語句)を検索して見終わったら IEを閉じる作業をしたいのですが、検索窓にVBA(語句)を 入力するところでエラーとなります。初心者ですが、なんとか 勉強したいのでよろしくお願いいたします。 Sub ie_test_Navigate() Dim objIE As Object Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate "http://www.google.co.jp/" IE.document.all.q.Value = "VBA" IE.document.all.btnG.Click If MsgBox("IEを閉じますか?", vbYesNo, "終了確認") = vbYes Then objIE.Quit End If Set objIE = Nothing End Sub
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
質問のコードの原型になったのではないかと思うところの http://q.hatena.ne.jp/1137216805 の通りやってみたらうまく行くようですが。 Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Sub ie_test_Navigate() Dim objIE As Object Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate "http://www.google.co.jp/" i = 0 Do Until objIE.busy = False Or i > 10 Sleep (1000) i = i + 1 Loop If i > 10 Then MsgBox "タイムアウト" Exit Sub End If objIE.document.all.q.Value = "VBA" objIE.document.all.btnG.Click If MsgBox("IEを閉じますか?", vbYesNo, "終了確認") = vbYes Then objIE.Quit End If Set objIE = Nothing End Sub これではどうですか。
- winarrow07
- ベストアンサー率41% (143/346)
>IE.document.all.q.Value = "VBA" >IE.document.all.btnG.Click は >objIE.document.all.q.Value = "VBA" >objIE.document.all.btnG.Click では? あとif文は1行完結ならEndIfは不要です。 あと、no1さんの回答も踏まえて下記のような感じでしょうか。 Sub ie_test_Navigate() Dim objIE As Object Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate "http://www.google.co.jp/" Dim time10 As Date time10 = DateAdd("s", 10, Now()) Do While objIE.Busy = True DoEvents If time10 < Now() Then MsgBox "タイムアウトです" Exit Sub End If Loop objIE.document.all.q.Value = "VBA" objIE.document.all.btnG.Click If MsgBox("IEを閉じますか?", vbYesNo, "終了確認") = vbYes Then objIE.Quit Set objIE = Nothing End Sub
お礼
早速の回答ありがとうございました。 おかげさまで解決いたしました。
- bluecampus
- ベストアンサー率66% (138/209)
アイドル状態になるまで待ってみたらどうでしょうか? Busyプロパティあたり。 参考 http://www.ken3.org/vba/backno/vba050.html
お礼
早々と回答ありがとうございます。 説明不足で申しわけありません。 下記2行を外すと動くのですが 実行時エラー424 オブジェクトが必要です。 となってしまうので何処か間違ってるのかと 初心者で、申しわけありません。 IE.document.all.q.Value = "VBA" IE.document.all.btnG.Click
お礼
早速の回答ありがとうございました。 おかげさまで解決いたしました。