インターネット上の作業で、VBAでIEを操作しようと思いアドレスを取得して、新しいページを表示させることにしました。 削除
Message#2 2014年9月22日(月)13時16分 From: 管理人 |
今回は、ヤフオクのIE制御についてということですが、リンクをクリックする方法と直接URLにアクセスする方法もまとめてみました。 以下をコピーして実行してみてください。 直接URLで処理するよりは、リンクをクリックする方法の方が利便性はいいですが。 ■ヤフオクのカテゴリをリンククリック Sub sample() Dim objIE As InternetExplorer 'InternetExplorerでヤフオクページを開く Call ieView(objIE, "http://auctions.yahoo.co.jp/") 'コンピューターカテゴリをクリック Call tagClick(objIE, "a", "コンピュータ") End Sub ■ヤフオクのカテゴリURLを開く Sub sample2() Dim objIE As InternetExplorer 'InternetExplorerでヤフオクページを開く Call ieView(objIE, "http://auctions.yahoo.co.jp/") 'コンピューターカテゴリリンクを開く Call ieNavi(objIE, "http://list3.auctions.yahoo.co.jp/jp/コンピュータ/23336-category.html") End Sub ■IE制御サブルーチン Public objIE As InternetExplorer Public objTag As Object Public objOption As Object Sub ieView(objIE As InternetExplorer, _ urlName As String, _ Optional viewFlg As Boolean = True, _ Optional ieTop As Integer = 0, _ Optional ieLeft As Integer = 0, _ Optional ieWidth As Integer = 1200, _ Optional ieHeight As Integer = 1000) Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = viewFlg objIE.top = ieTop objIE.Left = ieLeft objIE.Width = ieWidth objIE.Height = ieHeight objIE.navigate urlName Call ieCheck(objIE) End Sub Sub ieCheck(objIE As InternetExplorer) Dim timeout As Date timeout = Now + TimeSerial(0, 0, 10) Do While objIE.Busy = True Or objIE.readyState <> 4 DoEvents Sleep 100 If Now > timeout Then objIE.Refresh timeout = Now + TimeSerial(0, 0, 10) End If Loop timeout = Now + TimeSerial(0, 0, 10) Do Until objIE.document.readyState = "complete" DoEvents Sleep 100 If Now > timeout Then objIE.Refresh timeout = Now + TimeSerial(0, 0, 10) End If Loop End Sub Sub ieNavi(objIE As InternetExplorer, urlName As String) objIE.navigate urlName Call ieCheck(objIE) End Sub Sub tagClick(objIE As InternetExplorer, tag As String, tagStr As String) For Each objTag In objIE.document.getElementsByTagName(tag) If InStr(objTag.outerHTML, tagStr) > 0 Then objTag.Click Call ieCheck(objIE) Exit For End If Next End Sub |
上のメッセージを削除します。
よければパスワードを入力し、削除ボタンをクリックしてください。