IE操作メモ⑤ - 別タブで開いたHTML要素を取得する方法
IE操作時の開発メモ
コチラの記事は、ブログ管理人の開発メモです。
開発する際にまた検索する手間を省くため、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まとめ