ExcelやAccessのVBAでWebのHTMLを取得して処理をする
Web情報を得る段階
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 'Sleepの定義 Sub gethtml() Dim objIE As Object 'IEオブジェクト参照用 'IEのオブジェクトを作る Set objIE = CreateObject("InternetExplorer.application") ' objIE.Visible = True 'エクスプローラで表示する objIE.Navigate URL Do Until objIE.Busy = False '読み込みが終わるまで待つ Sleep 1000 Loop Debug.Print objIE.Document.Body.InnerHtml 'イミディエトにHTMLを表示する 'IEを閉じる objIE.Quit Set objIE = Nothing
htmlを解析し必要情報を取得する
Dim objTAG As Object '1つ1つ タグのオブジェクトを入れる For Each objTAG In objIE.Document.all 'odjTAGにタグが順に代入される If objTAG.tagName = "IMG" Then If objTAG.src = "http://〜〜/point.gif" Then Title = objTAG.nextSibling.innertext End If ElseIf objTAG.tagName = "SPAN" And objTAG.className = "class21" Then tmp = objTAG.innertext End If Next
InternetExplorer.application.Documentのプロパティ
objTAG.tagName
タグ名が大文字で入っている
objTAG.src
srcメンバはtagNameがIMGの時のみ存在するのでIf文の内側で判断する
絶対URLが入っている
objTAG.innertext
そのタグの内側にある文字列
objTAG.nextSibling.innertext
そのタグの次のタグの内側にある文字列
objTAG.className
そのタグのクラス名
objTAG.ID
そのタグのidの値
便利な関数
InStr(objTAG.innertext, "シアター")
シアター文字列の出現する位置を返す
存在しない場合には0を返す