インターネット上の作業で、VBAでIEを操作しようと思いアドレスを取得して、新しいページを表示させることにしました。
未読分:3件
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
Message#3 2014年9月25日(木)09時19分 From: 初心者です。 | 返事 削除 変更 |
すごい! 完璧です。 あれからこちらのサイトでVBAの勉強をさせていただいています。 とても分かりやすいのですごく感謝してます。 これからもよろしくお願いします。 |
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 |
Message#1 2014年9月20日(土)23時46分 From: 初心者です。 | 返事 削除 変更 |
インターネット上の作業で、VBAでIEを操作しようと思いアドレスを取得して、新しいページを表示させることにしました。 色々なサイトやそれに関する本を見たのですが、、頭が悪くなかなか要領を掴めなかったので、こちらで質問させていただきまいた。 例えばの話ですが、VBAを利用して、ヤフオクのトップページを表示させてから、カテゴリのいずれかをクリックするにはどのような制御をしたらよいでしょうか? または、直接カテゴリページへコードに打ち込んで、移動することもできるのでしょうか? もしそのような方法があれば、色々活用できる幅ができ、可能性も高くなるのですが、なにぶん理解力がないので、そこまでいきつきません。 VBA初心者ですので、分かりやすく解説していただけたら大変助かります。 誰か分かる方いましたら簡単な説明で教えていただけないでしょうか? よろしくお願いします。 |
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降