トップ回答者
IE7でのタブブラウザ処理時のエラー

質問
-
お世話になります。
VB初心者ですが、IE7でのタブブラウザの生成と、生成された情報を取得するプログラムの作成に挑戦中です。
OS:Windows Vista home premium
ブラウザ:IE7
VB:VB2005 Express Edition
IE7を起動した後で、下記のプログラムを実行すると、タブブラウザが新たに2個生成されます。
また、Windowsの名前とURLを取得し、表示するようにしています。
Const navOpenInNewTab = &H800
Dim objShell
Dim a, b, i'タブブラウザを2個生成
objShell = CreateObject("Shell.Application")
objShell.Windows.Item(objShell.Windows.Count - 1).Navigate2("http://www.yahoo.co.jp", navOpenInNewTab)
objShell.Windows.Item(objShell.Windows.Count - 1).Navigate2("http://www.google.co.jp", navOpenInNewTab)'タブブラウザが起動するのを待つ
System.Threading.Thread.Sleep(1000)
'--------------------------------------------------------------------
'IE起動後直後のURL
a = objShell.Windows.item(0).Fullname
b = objShell.Windows.item(0).LocationURL
MsgBox(a)
MsgBox(b)'新規に生成されたタブブラウザ1番目のURL
a = objShell.Windows.item(1).Fullname
b = objShell.Windows.item(1).LocationURL
MsgBox(a)
MsgBox(b)'新規に生成されたタブブラウザ2番目のURL
a = objShell.Windows.item(2).Fullname
b = objShell.Windows.item(2).LocationURL
MsgBox(a)
MsgBox(b)
'--------------------------------------------------------------------ここまでは、無事に動作しました。
ところが、'--------------------------------------------------------------------で囲った箇所を次のように変更したところ、
'--------------------------------------------------------------------
for i = 0 to 2
a = objShell.Windows.item(i).Fullname
b = objShell.Windows.item(i).LocationURL
MsgBox(a)
MsgBox(b)i = i + 1
'--------------------------------------------------------------------
a = objShell.Windows.item(i).Fullname
の箇所で、
「パラメータが間違っています。 (HRESULT からの例外: 0x80070057 (E_INVALIDARG))」
というエラーが表示されます。
どうも、item(i)というように、()内に変数を使うときにエラーが起こっているような気がします。
手打ちで、item(0) や item(1) のように指定した場合は問題が起こらないのですが、ここには変数が使えないのでしょうか?
それとも、プログラムが根本的に間違っているのでしょうか?
アドバイスをいただけましたら幸いです。
どうぞよろしくお願いいたします。