Option Explicit
Sub ie_test()
'【1】IEを起動し、データの入力画面を開くまでの操作
Dim objIE As Object
Dim i As Integer
Set objIE = CreateObject("InternetExplorer.Application")
With objIE
.Visible = True
'処理したいページを表示します。
.navigate "処理したいページ"
'ページの表示待ち
While .ReadyState <> READYSTATE_COMPLETE Or .Busy: DoEvents: Wend
Application.Wait (Now + TimeValue("0:0:2"))
'リンクの貼ってある画像をクリック
For i = 0 To .document.images.Length - 1
If InStr(.document.images.Item(i).outerHTML, "image/btn131b1.gif") > 0 Then
.document.images.Item(i).Click
End If
Next
'表示待ち
Application.Wait (Now + TimeValue("0:0:2"))
'前のIEを閉じる
objIE.Quit
End With
Set objIE = Nothing
'【2】データを入力する操作
Dim objSHELL As Object
Dim newIE As InternetExplorer
Dim yCNT As Long
'新しいIEをシェルオブジェクトに格納する
Set objSHELL = CreateObject("Shell.Application")
Set newIE = objSHELL.Windows(objSHELL.Windows.Count - 1)
Set objSHELL = Nothing
With newIE
'新しいウィンドウのログインボタンを押す
.document.forms(0).submit
While .Busy Or .ReadyState <> 4: DoEvents: Wend
'調べる項目
For yCNT = 3 To Cells(Rows.Count, 1).End(xlUp).Row
If Trim(Cells(yCNT, 1)) = "" Then Exit For 'A列が空白になったらループを抜ける
'ページが表示されたので処理を行います。
.document.frames(0).document.all("phone_no").Value = Cells(yCNT, 1) 'A列の文字を参照する
.document.frames(0).document.all("exec").Click
'表示待ち
Application.Wait (Now + TimeValue("0:0:2"))
'表示されたウインドウからデータをセットする
Cells(yCNT, 2) = .document.frames(1).document.body.innerText '検索の結果をエクセルに反映
Next yCNT
'新しいIEを閉じる
.Quit
End With
Set newIE = Nothing
End Sub
#1 の DOUGLAS_ です。
「Item(i)」の i の初期値は「0」ですから、
For i = 1 To objIE.Document.images.Length
ではなくて、
For i = 0 To objIE.Document.images.Length - 1
でしたね。
失礼いたしました。 <(_ _)>
ご質問の内容は、サイト の作りによって、操作の方法も変ってくるかと存じます。
ということで、先ずは、
>ここがわからない。。。
>(画像になっているハイパーリンクをクリックしたい、、、)
という点についてのみお答えいたします。
>ページ上に画像が貼り付けてあって、
>そこにURLくっついててハイパーリンクになっている
ということは、その辺りの html タグ に
<a href="~~"><img src="●●.gif"></a>
というようなことが書かれているかと存じますので、
For i = 1 To objIE.Document.images.Length
If InStr(objIE.Document.images.Item(i).outerHTML, "●●.gif") > 0 Then
objIE.Document.images.Item(i).Click
End If
Next
などとして、画像を クリック することができるかと存じます。
#お分かりにならないことがありましたら、ご遠慮なくお尋ねください。
お礼
非常に分かりやすい説明ありがとうございます。 もとよりVBの勉強をしていたわけではなく、仕事を捗らせる為にネットで色々検索してただけだったのですが、ここまで解り易い説明は初めて見ました。 お陰様で、やろうとしていたことが完璧にできました。 何から何までありがとうございます。 また何かの機会にご質問させていただくことがありましたら、その際はどうぞよろしくお願い申し上げます。