vb.netでIEを制御するアプリを作成するために、それに必要な知識をネット上で収集しています。
下記のコードを部分的に借用させて頂こうとしていますが、行番号31のDebug.Printで出力される内容が"http://www.yahoo.co.jp/"ではなく、"about:blank"です。どうしてでしょうか?
1 Public Class Form1
2 Private Const IE_MAX As Integer = 5
3 Private Const NAV_OPEN_IN_NEW_TAB As Integer = &H800
4 Private Const NAV_OPEN_IN_BACKGROUND_TAB As Integer = &H1000
5
6 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
7
8 'IE起動&タブを5つまで開く
9 Dim objShell As Object = CreateObject("Shell.Application")
10 Dim objIE As SHDocVw.InternetExplorer = _
11 CreateObject("InternetExplorer.Application")
12 Dim count As Integer
13 Dim ieList As New List(Of SHDocVw.InternetExplorer)
14 objIE.Visible = True '可視
15 While count < IE_MAX
16 If count = 0 Then
17 objIE.Navigate("about:blank")
18 Else
19 objIE.Navigate("about:blank", NAV_OPEN_IN_BACKGROUND_TAB)
20 End If
21 System.Threading.Thread.Sleep(1000) 'ある程度の時間Sleepしないと、異なるタブで開けない
22 ieList.Add(objShell.Windows.Item(objShell.Windows.Count - 1))
23 count += 1
24 End While
25 Application.DoEvents()
26
27 'タブ1と2でサイトを表示
28 ieList.Item(0).Navigate("http://www.google.co.jp/")
29 ieList.Item(1).Navigate("http://www.yahoo.co.jp/")
30
31 Debug.Print(ieList.Item(1).document.URL)
32
33 End Sub
34 End Class
環境は、Windows 7、VB 2010 Expressです。
ご教示の程、よろしくお願い致します。
お礼
インデントのない読みにくいソースコードすみませんでした。 お教え頂きましたように『ページが取得されるのを待つ処理』を追加したところ、期待する結果を得ることができました。 早速の回答ありがとうございました。