• 締切済み

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

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

質問のコードの原型になったのではないかと思うところの 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 これではどうですか。

kei3999_01
質問者

お礼

早速の回答ありがとうございました。 おかげさまで解決いたしました。

回答No.2

>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

kei3999_01
質問者

お礼

早速の回答ありがとうございました。 おかげさまで解決いたしました。

回答No.1

アイドル状態になるまで待ってみたらどうでしょうか? Busyプロパティあたり。 参考 http://www.ken3.org/vba/backno/vba050.html

kei3999_01
質問者

お礼

早々と回答ありがとうございます。 説明不足で申しわけありません。 下記2行を外すと動くのですが 実行時エラー424 オブジェクトが必要です。 となってしまうので何処か間違ってるのかと 初心者で、申しわけありません。 IE.document.all.q.Value = "VBA" IE.document.all.btnG.Click

関連するQ&A