応用

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

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

						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