Sub loginaccesstrade()


ID = "otameshi"
Password = "ekuseru"



Const navOpenInNewTab = &H800
Set objShell = CreateObject("Shell.Application")


'開いているIEの数を数えてみる。

lngCount = 0
For Each objWindow In objShell.Windows

lngCount = lngCount + 1

Next



'IEオブジェクトがないときは、新しく作成する
If lngCount = 0 Then

objShell.Windows.Item.Navigate2 "http://www.google.co.jp/ "  '← 一例でグーグルを開いてみました。
Else

’IEが開いていたら新しいタブで、指定したURLで開きます。 

'↑でも、IE開いてなくてもページ開いちゃいますけどね。。。 NAVIFGATE2 をもっと調べないと。



objShell.Windows.Item(lngCount - 1).Navigate2 "https://member.accesstrade.net/at/p/login.do ", navOpenInNewTab                    '新しいタグで指定しURLを開く


p = lngCount + 1               '今開いているURLのページを指定したいのでいったん、lngCount の値をpに代入 ( lngCount のままだとうまく動かないのですよ)


Set objIE = objShell.Windows.Item(p - 1)

objIE.document.All.UserName.Value = ID
objIE.document.All.Password.Value = Password
objIE.document.Forms(0).submit

End If



こんな感じできました。


あまり美しくないですね。



Navigate2では新しいページは開かないのかと思っていましたが、 なぜか開きます f(^^;




でも、とりあえずできたのでめでたし。 (←それでいいのか!?)


謎はIEのウィンドウのカウントが実際に開いているよりも 1 多いんですよね。


何を持って・・・ 1 多いのでしょう?


IEそのものをカウントしているのかな?