IEで全ソースを取得する - VBA、IE制御
ちょくちょく小ネタを掲載していきたいと思います。
IEでページの全ソースを取得する関数を作りました。
今まで関数化せずに「objIE.document.all(0).innerHTML」で取得してましたが、all(1)の方に入ってることもあるんですよね。
経験上多分all(2)に入ってることは無いと思うのですが、まぁ何にせよサイトごとに記述を変えてました。
しかし面倒だなと思い関数化しました。
'--------------------------------------------------------------- '関数名:getHTMLSource '内容:ヘッダーからボディーまでの全てが入ってるソースを取得 '引数1:IEオブジェクト '戻り値:HTMLソース '--------------------------------------------------------------- Function getHTMLSource(ByVal objIE As Object) As String Dim objItem As Object Dim src As String For Each objItem In objIE.document.all src = UCase(objItem.innerHTML) If InStr(src, "<HEAD") Then If InStr(src, "</BODY>") Then getHTMLSource = objItem.innerHTML Exit Function End If End If Next objItem getHTMLSource = "" End Function
特に難しいことはしてなく単純にallの全要素をFor eachで回して、Headの開始タグとBodyの終了タグが入ってたらソースの入った戻り値を返してます。
これでどのサイトもこの関数でHTMLの全ソースが取得出来ます。
毎回この関数を書くのも面倒なので、xlaファイルに記述しておいて読み込んで使うと便利です。
使って様子を見てますが、今のところ動作に問題はありません。
Excel VBAでIEを思いのままに操作できるプログラミング術 Excel 2013/2010/2007/2003対応
- 作者: 近田伸矢,植木悠二,上田寛
- 出版社/メーカー: インプレス
- 発売日: 2013/04/19
- メディア: Kindle版
- この商品を含むブログ (8件) を見る