![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) 【VBAエラー】Nextに対するForがありません 対策について 5 2022/11/21 21:26
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) InputBoxでキャンセルボタンを押したらファイル自体を閉じたい 3 2022/07/23 17:52
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- Visual Basic(VBA) 形式を選択して貼り付け 以下のコードで「元」シートと「先」シートのA列に同じ値があったら指定範囲をコ 5 2022/11/11 07:30
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
FORMが開いているかどうかの確...
-
どうしても登録できません。ど...
-
IEとクロームの表示ずれ
-
ファイル名を指定して実行で『...
-
ComboBoxの初期表示値
-
DLLをREGSVR32しないで利用する...
-
タスクトレイ常駐するプログラ...
-
起動中のアプリ、ソフトの取得
-
VB6.0のツールバー標準メニュー...
-
VBのコードが理解できません ...
-
Win98seでスタートメニューに「...
-
勝手にウィンドウが表示されます
-
IEの開き方
-
VBscriptでのエクセルの起動に...
-
IPアドレスのみをMsgBoxで表示...
-
メモリの「コミット済み」の意...
-
プロファイルエラーについて
-
PCを起動すると画面が真っ黒で...
-
Windows98SE ・Meの動作「上限...
-
vmstatで、メモリ使用率を計算する
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FORMが開いているかどうかの確...
-
起動中のアプリ、ソフトの取得
-
DLLをREGSVR32しないで利用する...
-
Accessのフォームをコマンドラ...
-
VB6.0のツールバー標準メニュー...
-
Javaで環境変数を動的に変更す...
-
タスクトレイ常駐するプログラ...
-
ユーザごとでキーボードマップ...
-
VB6での環境変数変更方法について
-
プログラムからOS標準ブラウザ...
-
ilink32.exe'を実行できないエラー
-
IPアドレスのみをMsgBoxで表示...
-
VBでメールを起動させるには・・・
-
VBAの直接起動
-
VBscriptでのエクセルの起動に...
-
ハードウェア変更のスキャンをO...
-
IEとクロームの表示ずれ
-
バッチファイルでWEBサイト接続...
-
SSI 文字化けしてしまう
-
アプリケーション実行中にタス...
おすすめ情報