- ベストアンサー
二つ目のタブの情報をウォッチウインドウで確認できない理由とは?
- 一つのウインドウで二つのタブを開いたとき、二つ目のタブの情報をウォッチウインドウで確認することはできないのですか?
- objIEをウォッチウインドウで見た時に、Set objIE = Nothingで処理を中断しても、Navigate2で開いたhttp://www.google.co.jp/の情報はobjIEに格納されていないようです。
- ウォッチウインドウを見てもhttp://www.yahoo.co.jp/の情報しか見当たりません。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
「objIE」には、InternetExplorer.Application を起動し、最後に Navigate(2) したWEBページの情報が格納されます。 しかし、お示しのコードでは、「2048」という引数で、「二つ目のタブ」で「google」を開いていますので、この場合は、ストレートに「objIE」で情報を把握することはできません。 VBAで InternetExplorer.Application を起動し、2つ以上のタブまたはウィンドウを開いたときには、常套手段として、 ●目的のタブまたはウィンドウを開いたときの Shell.Application の ウィンドウの数からターゲットを絞る か、もしくは、 ●Shell.Application.Windows を For Each ~ Next で、回して、 LocationURL などからターゲットを絞る かのいずれかになります。 Sub Sample2() Dim objshell As Object Dim objIE As New InternetExplorer Dim objIE2 As Object Set objshell = CreateObject("Shell.Application") With objIE .Visible = True .Navigate "http://www.yahoo.co.jp/" .Navigate2 "http://www.google.co.jp/", 2048 End With Application.Wait (Now + TimeValue("0:00:3")) Set objIE2 = objshell.Windows(objshell.Windows.Count - 1) MsgBox objIE2.LocationURL Set objIE = Nothing Set objshell = Nothing Set objIE2 = Nothing End Sub
お礼
Shell.Application を使うことにします。とてもわかりやすい説明ありがとうございます。