ExcelVBAでIEを操作しています。
VBAより、あるWebページのボタンをクリックすると、自動で新しいタブが追加されます。
クリックボタンのある元のページのタブもそのまま残っています。
この新しいタブのIEオブジェクトを取得したいのですが、できません。
コードの一部を以下に載せます。
' 検索ボタンをクリック objIE.document.getElementById("btnSearch").Click ' 新規タブのIEオブジェクトを取得 Call getIE("XXX", wkObjIE) '"XXX"はタイトル(固定値)が入ります。wkObjIEはアウトプットです (中略) Public Function getIE(title As String, objIE As InternetExplorer) Set sh = CreateObject("Shell.Application") 'ShellWindowから1つずつ取得して処理 For Each win In sh.Windows 'ドキュメントタイトル取得失敗を無視(処理継続) On Error Resume Next document_title = "" document_title = win.document.title On Error GoTo 0 'タイトルバーにfunction引数の"title"が含まれるかチェック If InStr(document_title, title) > 0 Then Set objIE = win Exit For End If Next getIE = 1 End Function
具体的には、こちらのサイト「https://www.books-sanseido.co.jp/」 のメニュー「本を探す」にて、検索BOXに「9784295000396」を入力後、検索BOXの隣のボタンをクリックする操作を行い、これにより追加されるタブのオブジェクトを取得しようとしています。
環境は WindowsServer 2012R2、Excel2016、IEのバージョンは11です。
ウォッチウィンドウで上記コードのsh.Windowsを確認しても、元ページタブはあるのですが、新規タブが見つかりません。
一方で、別PCのWindows7の環境では、同一プログラムで問題なく新規タブのIEオブジェクトを取得できます。
Excel、IEのバージョンは上記と同じです。
試しに、デバッグ実行中に手動で元のページのタブを閉じて、新しいタブだけを残した状態にしたのですが、相変わらずsh.Windowsに当該タブが見つかりません。
ネットで調べても情報が見つからず、行き詰まっています。
原因・対応策などを教えていただけますでしょうか。
まだ回答がついていません
会員登録して回答してみよう