• ベストアンサー

VBのコードが理解できません 解説いただけないでしょうか?

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 が何をしているのか分からないんです。

質問者が選んだベストアンサー

  • ベストアンサー
  • id357
  • ベストアンサー率29% (39/133)
回答No.2

答えでなくて良いですか? 感覚的にですが、多分 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 を展開する。との意味でしょうか? とりあえず分かる範囲内で。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

http://www.d3.dion.ne.jp/~pashica/kobetu/k20070408.html に解説が有ります。 >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に説明あり。よく読むこと。

  • id357
  • ベストアンサー率29% (39/133)
回答No.3

If Not WinExist = True Then Set ObjIE = CreateObject("InternetExplorer.Application") End If #1 さんの通りです。 Not WinExist でした。

  • urourojp
  • ベストアンサー率33% (1/3)
回答No.1

開いている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が存在すると言うことになります。

専門家に質問してみよう