応用

タブでサイトを開く(IE7以降)

IE7以降で、タブを指定してサイトを表示する方法です。
Navigateメソッドの第二引数に&H1000を渡すことで、新しいタブでページを開きます。
新しいタブでページを開いた際のオブジェクトを保持しておき、そのオブジェクトに対して以降Navigateや操作をします。

タブが複数開かれている場合は、サイズ、位置、および外観に影響を与えるメソッドは効果がありません。
タブが1つの時に設定する必要があります。

					Public Class Form1
						Private Const IE_MAX As Integer = 5
						Private Const NAV_OPEN_IN_NEW_TAB As Integer = &H800
						Private Const NAV_OPEN_IN_BACKGROUND_TAB As Integer = &H1000

						Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

							'IE起動&タブを5つまで開く
							Dim objShell As Object = CreateObject("Shell.Application")
							Dim objIE As SHDocVw.InternetExplorer = _
								CreateObject("InternetExplorer.Application")
							Dim count As Integer
							Dim ieList As New List(Of SHDocVw.InternetExplorer)
							objIE.Visible = True		'可視
							While count < IE_MAX
								If count = 0 Then
									objIE.Navigate("about:blank")
								Else
									objIE.Navigate("about:blank", NAV_OPEN_IN_BACKGROUND_TAB)
								End If
								System.Threading.Thread.Sleep(1000)		'ある程度の時間Sleepしないと、開く時に異なるタブで開けない
								ieList.Add(objShell.Windows.Item(objShell.Windows.Count - 1))
								count += 1
							End While
							Application.DoEvents()

							'タブ1と2でサイトを表示
							ieList.Item(0).Navigate("http://www.google.co.jp/")
							ieList.Item(1).Navigate("http://www.yahoo.co.jp/")

						End Sub
					End Class
				
					Sub sample()

						'定数定義
						Const IE_MAX As Integer = 5
						Const NAV_OPEN_IN_NEW_TAB As Long = &H800
						Const NAV_OPEN_IN_BACKGROUND_TAB As Long = &H1000

						'変数定義
						Dim objShell As Object
						Dim objIE As SHDocVw.InternetExplorer
						Dim count As Integer
						Dim ieList(4) As SHDocVw.InternetExplorer
						Dim i As Long

						'オブジェクト設定
						Set objShell = CreateObject("Shell.Application")
						Set objIE = CreateObject("InternetExplorer.Application")

						'IE起動&タブを5つまで開く
						objIE.Visible = True	'可視
						While count < IE_MAX
							If count = 0 Then
								objIE.Navigate "about:blank"
							Else
								objIE.Navigate "about:blank", NAV_OPEN_IN_BACKGROUND_TAB
							End If
							For i = 0 To 100000
								DoEvents	'ある程度の時間Sleepしないと、開く時に異なるタブで開けない
							Next
							Set ieList(count) = objShell.Windows.Item(objShell.Windows.count - 1)
							count = count + 1
						Wend
						DoEvents

						'タブ1と2でサイトを表示
						ieList(0).Navigate "http://www.google.co.jp/"
						ieList(1).Navigate "http://www.yahoo.co.jp/"

					End Sub