自分方位研究所

日々の活動記録

VBAで起動済みIE (Internet Explorer)に新しいタブを開く(.Navigate2メソッドの利用)

起動済みのIE (Internet Explorer)に新たにタブを追加して、そのタブに別のURLを表示するには 「.Navigate2メソッド」を使用します。

これについては、引き続き、三流君ken3さんの以下のページを参考にさせていただきました。ありがとうございます。 ken3memo.hatenablog.com

 

昨日使用したIEを起動するコードを流用して、起動したIEに、さらにタブを追加して新しいページを表示してみます。

以下のコードを実行すると、新しいIEが起動し、指定したURLが開きます。

その後メッセージボックスが出現して、「OK」ボタンをクリックすると、新しいタブが追加され、そこに別のURLを表示します。

Sub OpenIE_TAB()

Dim TGTpageURL As String    '表示したいURL
TGTpageURL = "https://hatenablog.com/"

Dim objIE As Object
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = True
objIE.Navigate TGTpageURL   '指定URLを開く

'ページが開くまで待機
Do While objIE.ReadyState <> 4 Or objIE.Busy = True
    DoEvents
Loop
'--------------------------------------------------
Dim TGTpageURL2 As String    '追加で表示したいURL
TGTpageURL2 = "https://hatenablog.com/guide/academy"

MsgBox "新しくタブを開きます。" & vbCrLf & "URL: " & TGTpageURL2

objIE.Navigate2 TGTpageURL2, 2048    '新しくタブを開く

End Sub

 

Do While objIE.ReadyState <> 4 Or objIE.Busy = True
    DoEvents
Loop

 このコードは、起動したIEのページ表示完了待ちのタイマです。

 

objIE.Navigate2 TGTpageURL2, 2048    '新しくタブを開く

 .Navigate2 で新しいタブに別URLを表示します。

引数が2048 になっていますが、16進表記(&H800) でも同じです。

引数を 1 にしても、動作は同じでした。

引数を省略すると .Navigate と同じ動作でした。同一タブでページを上書き。

新しいタブを開くと、新しいタブを制御したいのですが、このままでは、今まで表示していた古いタブのobjIEオブジェクトしか制御できません。

何とかして、新しいタブを制御したいです。明日に続きます。