エクセル2013のVBAでIEで表示されているページのHTMLソースを取得するには?
未読分:2件
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
Message#2 2014年10月12日(日)06時33分 From: 管理人 | 返事 削除 変更 |
VBAでHTMLの全ソースを取得したい場合は以下のような処理になります。 Sub sample() Dim objIE As InternetExplorer 'IE(InternetExplorer)のオブジェクトを作成する Set objIE = CreateObject("InternetExplorer.Application") 'IE(InternetExplorer)を表示する objIE.Visible = True '指定したURLのページを表示する objIE.Navigate "http://www.vba-ie.net/" '完全にページが表示されるまで待機する Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop 'HTMLソースを抽出 Debug.Print objIE.document.all(0).outerHTML End Sub 【解説】 Set objIE = CreateObject("InternetExplorer.Application") @まずはIE操作するために必要なオブジェクトを作成します。 objIE.Visible = True Aそのオブジェクトを視覚的に見えるようにTrueを設定します。 objIE.Navigate "http://www.vba-ie.net/" B「Navigateメソッド」は指定したURLをIEで開きます。 Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop CこちらはIEが完全に読み込まれるまで処理を待つ処理になります。 Debug.Print objIE.document.all(0).outerHTML D最後にHTMLソースを抽出します。 ここまでがHTMLソースを抽出するざっとした流れですが、詳細について知りたい場合は以下を参考にされてください。 【指定したURLをIEで表示する】 http://www.vba-ie.net/ie/navigate.html 【Documentのallオブジェクト】 http://www.vba-ie.net/element/document-all.html 【要素テキストのプロパティ(innerHTML,innerText,outerHTML,outerText】 http://www.vba-ie.net/element/html-text.html |
Message#1 2014年10月11日(土)01時17分 From: CALLDUTY | 返事 削除 変更 |
エクセル2013のVBAで(Internet Explorer(IE)で表示されているページのHTMLソースをどうにか取得できないか考えています。 VBAでソース取得のイメージがまったく分からないのですが、これはVBAでIEを開いてから更にHTMLソースを表示させ、そのソースをコピーするのでしょうか? まったくの初心者で申し訳ないですが、分かりやすく教えてください。 また、VBAだけでなく他にも取得できる方法があればそれも教えてもらいたいです。 お願いします>< |
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降