MacroCat@Siro - ExcelVBA・PHP・フリーランス

ExcelVBA、WEBスクレイピング、その他技術に関して書いていきます。

IE操作メモ⑤ - 別タブで開いたHTML要素を取得する方法

読者になる/フォローする

IE操作時の開発メモ

f:id:sirosiro346:20171003235423j:plain

コチラの記事は、ブログ管理人の開発メモです。
開発する際にまた検索する手間を省くため、Tips + 一言コメントで記事を書いています。

リンククリック後に別タブにて画面が開く場合のHTML要素取得方法

    '************************************検索実行************************************
    Dim URL As String
    URL = "http://www.jpx.co.jp/markets/index.html"
    
    '******************IEを開く******************
    Dim objIE As InternetExplorer 'IEオブジェクトを準備
    Dim objIE2 As InternetExplorer 'IEオブジェクトを準備
    Set objIE = CreateObject("Internetexplorer.Application") '新しいIEオブジェクトを作成してセット
    objIE.Visible = False 'True:IEを表示 , False:IEを非表示

    '******************URLを開く******************
    Dim link As IHTMLElementCollection 'liのHTMLエレメントコレクションを準備
    Dim strURLOptionInfo As String 'liのHTMLエレメントコレクションを準備
    Dim htmlDoc As HTMLDocument 'HTMLドキュメントオブジェクトを準備
    
    'ページを開く
    objIE.navigate URL
    
    'ページのデータを取得するために、ページが表示されるまで待つ
    Call SysContentCls.DisplayWait(objIE)

    'objIEで読み込まれているHTMLドキュメントをセット
    Set htmlDoc = objIE.document
    
    '******************対象の子ページを開く******************
    'class : link-window link-blank
    Dim objShell As Object
    Dim htmlDoc2 As HTMLDocument 'HTMLドキュメントオブジェクトを準備
    Dim strHTMLALL As String
    Dim tr As IHTMLElementCollection 'liのHTMLエレメントコレクションを準備
    
    'リンクをクリック
    strURLOptionInfo = htmlDoc.getElementsByClassName("link-window link-blank")(1).href
    htmlDoc.getElementsByClassName("link-window link-blank")(1).Click
    
    '別ウィンドウで開くため、別ウィンドウを特定して取得
    Set objShell = CreateObject("Shell.Application")
    Set objIE2 = objShell.Windows(objShell.Windows.Count - 1) '新しいウィンドウのオブジェクトを取得
    objIE2.Visible = False 'True:IEを表示 , False:IEを非表示
    
    'ページのデータを取得するために、ページが表示されるまで待つ
    Call SysContentCls.DisplayWait(objIE2)

    'objIEで読み込まれているHTMLドキュメントをセット
    Set htmlDoc2 = objIE2.document


上記の「htmlDoc2」を利用し、以下各要素の値取得方法に記載されているようなソースを活用すれば、
別タブで開いてしまった場合でも各要素の取得が可能です。
IE操作メモ② - IEから各要素を取得する方法 - MacroCat@Siro - ExcelVBAまとめ