下記の参考プログラムのように
Navigateで開いたページ(Yahooのトップページ)から
リンク先のページ(Yahooファイナンス)に移動しても
オブジェクト(ObjIE)の内容がYahooのトップページのままで
リンク先のページの内容にならず、処理がうまくいかない。
別PCですがExcel2010では意図したとおりに実行できました。
以下参考実行プログラム
--------------------------------------------------------------------------------------------------------------------------------
Dim ObjIE As Object '変数を定義
Dim Obj As Object '変数を定義
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub IE_open()
j = 0
Set ObjIE = CreateObject("InternetExplorer.Application")
'IEを開く際のお約束
ObjIE.Visible = True
'IEを開く際のお約束
ObjIE.Navigate "http://www.yahoo.co.jp/"
'開きたいサイトのURLを指定
Do While ObjIE.ReadyState <> 4
'サイトが開かれるまで待つ(お約束)
Do While ObjIE.Busy = True
'サイトが開かれるまで待つ(お約束)
Loop
Loop
For Each Obj In ObjIE.document.getElementsByTagName("a")
'表示されているサイトのアンカータグ一つずつを変数objにセット
'各アンカータグ単位に以下の処理を実施
If Obj.innerText = "ファイナンス" Then 'アンカータグの表示内容が「ファイナンス」の場合に以下の処理を実施
Obj.Click
'上記に該当するタグをクリック
Exit For
'上記処理後、For Each ~ Nextを抜ける
End If
Next
'次のタグを処理
Sleep (1000) '1秒待つ
Do While ObjIE.ReadyState <> 4 'サイトが開かれるまで待つ(お約束)
Do While ObjIE.Busy = True 'サイトが開かれるまで待つ(お約束)
Loop
Loop
For Each Obj In ObjIE.document.getElementsByTagName("input") '表示されているサイトのinputタグ一つずつを変数objにセット
'各inputタグ単位に以下の処理を実施
If Obj.ID = "searchText" Then 'タグのid名が「searchText」の場合、以下の処理を実施
Obj.Value = "任天堂" 'テキストボックスに「任天堂」を挿入
Else
If Obj.ID = "searchButton" Then 'タグのid名が「searchButton」の場合、以下の処理を実施
Obj.Click '該当のinputタグをクリック
Exit For '上記処理後、For Each ~ Nextを抜ける
End If
End If
Next '次のタグを処理
End Sub