マイクロソフトはもはやIEを使うなといっているが、以下のようなvbaでwebページを捕まえて、情報を抽出してみた。
Dim objIE As InternetExplorer
Dim objITEM As Object
Dim objTD As Object
Dim i As Long
Sub Getpage()
Set objIE = Nothing
Set objShell = CreateObject("Shell.Application")
For Each objWindow In objShell.Windows
If TypeName(objWindow.document) = "HTMLDocument" then
Set objIE = objWindows
debug.print objIE.document.Title
If objIE.document.Title = "page-title" then
objIE.document.forms("formname").param1.value = "KEYWORD"
objIE.navigate "javascript:js_001;" ' Execute javascript js_001
Application.Wait Now + TimeValue(00:00:02") '画面表示を2秒待つ
For Each objTD In objIE.document.getElementsByTagName("tr")
For Each objITEM In objIE.document.getElementsByTagName("a")
'↑↑↑このgetElementsByTagNameで目的のaタグを手繰るところがミソ
If Instr(objITEM.outerHTML,"KEYWORD") > 0 then
' KEYWORDという文字列を持つaタグ(リンク)を探し、リンクをクリックすると、詳細ページが表示されるという構図。
'このとき、debug.print objITEM.nameとかobjITEM.vakueとかで確認するのがコツです。
objITEM.click 'リンク(ボタン)をクリックする
Exit For
End If
Next
Next
Application.Wait Now + TimeValue(00:00:02") '画面表示を2秒待つ
' 上記コードをマネし、getElementsByTageNameでタグを手繰り、必要な情報をゲットする。
' HTMLページの解析には、IEの開発者タブF12を使う。
End If
End If
End Sub
これでいいかな
こうやって、RPA(robot process automation)をVBAの手作りで始められる。
冬の朝。まだ、日が昇る前に歩くのがいい。息は白い。




