VBでのIE操作
VBでのIE操作をしようとして色々調べています。
色んなサイトを見ながら途中までは何とかできましたが、どうしてもリンク先を表示できません。
お分かりになる方いましたら、お力添えいただければ幸いです。
状況:
Excel2007使用 IE7 VB初心者です。
やりたい内容:
VBでIEを立ち上げる
↓
ページからリンクをクリックする
(ページ上に画像が貼り付けてあって、そこにURLくっついててハイパーリンクになっている。)
(セキュリティの関係でハイパーリンク先を初期で表示することはできない。)
↓
表示されたページに検索したい項目を入力
↓
結果をエクセルに反映する。
以上の作業をVBで組もうと思ってます。
よろしくお願いします。
Option Explicit
Sub ie_test()
'IEの起動
Dim objIE As Object
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = True
'処理したいページを表示します。
objIE.navigate "処理したいページ"
'ページの表示待ち
While objIE.readyState <> READYSTATE_COMPLETE Or objIE.Busy = True
DoEvents
Wend
'開かれたIEを探す。
Dim objSHELL As Object
Dim objWINDOW As Object
Dim newIE As InternetExplorer
Dim wait_time As Date
Dim yCNT As Long
Dim i As Integer
'表示待ち
wait_time = DateAdd("s", 2, Now())
Do While Now() < wait_time
DoEvents
Loop
'リンクの貼ってある画像をクリック
For i = 0 To objIE.document.images.Length - 1
If InStr(objIE.document.images.Item(i).outerHTML, "image/btn131b1.gif") > 0 Then
objIE.document.images.Item(i).Click
End If
Next
'表示待ち
wait_time = DateAdd("s", 2, Now())
Do While Now() < wait_time
DoEvents
Loop
'シェルのオブジェクトを作成する
Set objSHELL = CreateObject("Shell.Application")
Set newIE = objSHELL.Windows(objSHELL.Windows.Count - 1)
Set objSHELL = Nothing
'新しいウィンドウのログインボタンを押す
Dim objINPUT As Object 'Inputタグ格納用
For Each objINPUT In newIE.document.all.tags("INPUT")
If objINPUT.Value = "ログイン" Then
objINPUT.Click
Exit For
End If
Next
'調べる項目
For yCNT = 3 To 1002 '
If Trim(Cells(yCNT, 1)) = "" Then Exit For 'A列が空白になったらループを抜ける
'ページが表示されたので処理を行います。
newIE.document.all("phone_no").Value = Cells(yCNT, 1) 'A列の文字を参照する
newIE.document.all("exec").Click
※ここでオブジェクト変数。。。のエラーが発生する※
'表示待ち
wait_time = DateAdd("s", 2, Now())
Do While Now() < wait_time
DoEvents
Loop
'表示されたウインドウからデータをセットする
Cells(yCNT, 2) = newIE.document.body.innerText '検索の結果をエクセルに反映
'新しいIEを閉じる
newIE.Quit
Set newIE = Nothing
'前のIEを閉じる
objIE.Quit
Set objIE = Nothing
Next yCNT
End Sub
初心者なので色々調べたのですがわかりませんでした。。。
お礼
ありがとうございます。 勉強になりました。