こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

投稿日時 - 2009-09-14 17:37:25

QNo.5289556

困ってます

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.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
これではどうですか。

投稿日時 - 2009-09-14 20:52:42

お礼

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

投稿日時 - 2009-10-13 08:40:18

ANo.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

投稿日時 - 2009-09-14 18:39:07

お礼

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

投稿日時 - 2009-10-13 08:40:50

ANo.1

アイドル状態になるまで待ってみたらどうでしょうか?
Busyプロパティあたり。

参考
http://www.ken3.org/vba/backno/vba050.html

投稿日時 - 2009-09-14 17:45:32

お礼

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

IE.document.all.q.Value = "VBA"
IE.document.all.btnG.Click

投稿日時 - 2009-09-14 18:01:14

あなたにオススメの質問