dポイントプレゼントキャンペーン実施中!

Dim ObjIE As Object
Dim ObjShell As Object
Dim ObjWindow As Object
Dim WinExist As Boolean

WinExist = False
Set ObjShell = CreateObject("Shell.Application")
For Each ObjWindow In ObjShell.Windows
If TypeName(ObjWindow.Document) = "HTMLDocument" Then
 WinExist = True
 Set ObjIE = ObjWindow
End If
Next
Set ObjShell = Nothing

If Not WinExist = True Then
Set ObjIE = CreateObject("InternetExplorer.Application")
End If

ObjIE.Navigate "http://nantokakantoka.html"
ObjIE.Visible = True

このコードを解説いただけないでしょうか?
特に
WinExist

For Each ObjWindow In ObjShell.Windows
If TypeName(ObjWindow.Document) = "HTMLDocument" Then

が何をしているのか分からないんです。

A 回答 (4件)

答えでなくて良いですか?


感覚的にですが、多分

WinExist = False
はリセットです。
ここで WinExist は Boolean なので 0,1 どちらかです。
(簡単に、yes,no no に設定)

次に shell の定義をして(IE起動用)

内容はわかりませんが
For Each で、検索して
HTML のものがあれば
  スイッチ代用の WinExist を ON (yes) にします。

で、HTML の文章(その他ドキュメント)があれば
( WinExist が ON {yes} ならば )
   CreateObject("InternetExplorer.Application")
IEを起動して表示する。でしょうか?

Set ObjIE = ObjWindow は今一わかりませんが
必要なのでしょう。
windows 上に IE を展開する。との意味でしょうか?

とりあえず分かる範囲内で。
    • good
    • 0

http://www.d3.dion.ne.jp/~pashica/kobetu/k200704 …
に解説が有ります。
>Set ObjShell = Nothing
まではインターネットエクスプローラー(IE)が有るかどうかを聞いている。
>Set ObjShell = Nothing
以下でIEを開いて、"​http://nantokakantoka.html"を開いて画面に表示Visible = True している。
ーーー
>WinExist = True
はフラグ(旗)というもので、あった時にTrueとし、ForEachの繰り回しガすべて終わったとき判定している。1つ以上あればTrueになっているわけ。
1つ見つかればIEを起動し、ExitForしてもよいように思ったが。
ーー
>For Each ObjWindow In ObjShell.Windows
If TypeName(ObjWindow.Document) = "HTMLDocument" Then
  は上記WEBに説明あり。よく読むこと。
    • good
    • 0

If Not WinExist = True Then


Set ObjIE = CreateObject("InternetExplorer.Application")
End If

#1 さんの通りです。
Not WinExist でした。
    • good
    • 0

開いているWindowの中にInternet Explorerがあるかチェックして


もしあれば、そのInternet Explorerでhttp://nantokakantoka.html
にアクセスすると言うものです。

WinExistはIEがあるかないかの結果を放り込んでいます。ある/なし
でTrue/Falseですね。

For Each ObjWindow In ObjShell.Windows
If TypeName(ObjWindow.Document) = "HTMLDocument" Then
は先に書いた全Windowチェックです。IEのTypeName(ObjWindow.Document)
はHTMLDocumentなので、TrueであればIEが存在すると言うことになります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!