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

Sub Test1()
Dim objShell As Object
Dim objWin As Object

Set objShell = CreateObject("Shell.Application")

For Each objWin In objShell.Windows
Debug.Print objWin
Next

End Sub

のコードを実行すると、
・Microsoft Internet Explorer
・Windows Internet Explorer
が取得されるのですが、
これは何が取得されてるのでしょうか?
IEブラウザとフォルダですか?

IEブラウザは3つ
フォルダは5つ
立ち上げてますが
このコードを実行すると、

Microsoft Internet Explorer
は、4つ
Windows Internet Explorer
は、3つ取得されます。


OSはXPです。ご回答よろしくお願いします。

A 回答 (1件)

知識がある方の回答が付かないので、答えさせていただきます。


この方面についての当方の知識が貧弱なため不正確なところがあるかもしれませんが、そこのところはご承知置きください。

objWinはInternetExplorerオブジェクトになっているようです。
といってもこれはブラウザだけでなくフォルダも含まれるようです。
(MSDNによると、ShellオブジェクトのメンバWindowsはShellWindowsオブジェクトを返す、となっています。ShellWindowsオブジェクトの解説の最初の方に、開いているShellのウィンドウのコレクションだと書いてあるのですが、少し下の方に、ItemはInternetExplorerオブジェクトを取得する、と書いてあります。)

Debug.Print objWin と書くと、.Name を省略したものとみなされるようです。
Nameプロパティですが、アプリケーション名を取得する、となっています。
質問者様の実行結果では、
Microsoft Internet Explorer
Windows Internet Explorer
の2種類の値がありますが、
Microsoft Internet Explorer がフォルダ、
Windows Internet Explorer がIE7以降のブラウザのようです。
ちなみにIE6だとブラウザも Microsoft Internet Explorer になります。

フォルダが5個なのにMicrosoft Internet Explorerが4つしかない理由はわかりません。

http://msdn.microsoft.com/ja-jp/library/windows/ …
http://ie.vba-ken3.jp/Property/
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2012/12/16 10:02

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