![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
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
が何をしているのか分からないんです。
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 を展開する。との意味でしょうか?
とりあえず分かる範囲内で。
No.4
- 回答日時:
に解説が有ります。
>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に説明あり。よく読むこと。
No.3
- 回答日時:
If Not WinExist = True Then
Set ObjIE = CreateObject("InternetExplorer.Application")
End If
#1 さんの通りです。
Not WinExist でした。
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が存在すると言うことになります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
FORMが開いているかどうかの確...
-
起動中のアプリ、ソフトの取得
-
Accessのフォームをコマンドラ...
-
MS-DOSが開けません。
-
redmineのインストールを行なっ...
-
メモリの「コミット済み」の意...
-
プロファイルエラーについて
-
RECOVERY(D:)ってなんですか?
-
PCを起動すると画面が真っ黒で...
-
NEC製 セーフモードができない。
-
最先端のCPUを詰んだAndroidス...
-
\\Device\\Harddisk1\\DR1 でコ...
-
パソコン画面が緑色で映りません。
-
Windows98SE ・Meの動作「上限...
-
acerでリカバリーできません
-
RECOVERYというフォルダについて
-
違うメーカーのリカバリーディ...
-
ブルーバックが出る
-
メモリが"written"になることは...
-
tightvncで灰色の画面になります。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FORMが開いているかどうかの確...
-
起動中のアプリ、ソフトの取得
-
DLLをREGSVR32しないで利用する...
-
タスクトレイ常駐するプログラ...
-
IPアドレスのみをMsgBoxで表示...
-
Javaで環境変数を動的に変更す...
-
ユーザごとでキーボードマップ...
-
アプリケーション実行中にタス...
-
VBでメールを起動させるには・・・
-
VB6.0のツールバー標準メニュー...
-
CPU稼働率を向上させる方法
-
Accessのフォームをコマンドラ...
-
VC++からブラウザを起動し...
-
VBscriptでのエクセルの起動に...
-
IEとクロームの表示ずれ
-
VB6での環境変数変更方法について
-
VScodeで新しいターミナルを開...
-
WebBrowserコントロールでの印刷
-
SSI 文字化けしてしまう
-
Windowsの起動と同時に、タスク...
おすすめ情報