
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が開いているかどうかの確...
-
メモリの「コミット済み」の意...
-
再度お聞きします
-
Windows XPの再インストール
-
このエラーはどういうことでし...
-
NECノートPC 初期化方法を教え...
-
RECOVERY(D:)ってなんですか?
-
メモリが"written"になることは...
-
エラー PXE-E51
-
自分が使っているデスクトップP...
-
RECOVERYというフォルダについて
-
リカバリしたにも関わらずパソ...
-
windows10スリープ解除時のロゴ
-
会計ソフトJDL macで使いたい W...
-
フォトショとイラレの併用時に...
-
Windows 32BitOS上で稼動するOr...
-
DRIVER IRQL NOT LESS OR EQUAL...
-
Windows98SE ・Meの動作「上限...
-
MacとWinのメモリの違いについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FORMが開いているかどうかの確...
-
起動中のアプリ、ソフトの取得
-
VB2005でのSource...
-
DLLをREGSVR32しないで利用する...
-
Accessのフォームをコマンドラ...
-
勝手にセキュリティー警告が出る
-
タスクトレイ常駐するプログラ...
-
ハードウェア変更のスキャンをO...
-
プログラムからOS標準ブラウザ...
-
アプリケーション実行中にタス...
-
このアプリはなんですか?
-
ilink32.exe'を実行できないエラー
-
ExcelのVBAコードについて教え...
-
F-LINKについて
-
エントリーポイントが見つかり...
-
「mailto:」の書式
-
VC++からブラウザを起動し...
-
タスクスケジュールで定時にポ...
-
WebBrowserコントロールでの印刷
-
コマンドプロンプトでIEを起動...
おすすめ情報