• ベストアンサー

VBでURLによって処理を変えたい。

VBで現在、IEのアクティブになっているウィンドウのURLを取得することは、可能でしょうか?

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

  • ベストアンサー
回答No.1

API関数の「GetForegroundWindow」で最前面のウィンドウハンドルは取得できます。 Public Declare Function GetForegroundWindow Lib "user32" () As Long Sub 最前面のウィンドウハンドル取得サンプル()   Dim l_TopWindow As Long   l_TopWindow = GetForegroundWindow   msgbox l_TopWindow End Sub IEの表示しているURLを取得方法は、履歴があります。 http://okwave.jp/kotaeru.php3?q=417218 その中に '情報出力 If strDomain <> "" Then   '情報出力   strOutPut = "[" & objIE.LocationName & "] "   strOutPut = strOutPut & objIE.LocationURL   Debug.Print strOutPut End If という部分がありますが、そのIF分の中で、 「objIE.hwnd」= 「API:GetForegroundWindow()」 であるかどうかで、そのIEがWINDOWS上のTOPに存在しているかが判断できます。 WINDOWS上のTOPではなくても、単に複数のIE先頭でよければ、最初に見つけたIEだけでも良いです。

7_11shop
質問者

お礼

できました。完璧です。ありがとうございます。

その他の回答 (1)

回答No.2

IE のアクティブなウィンドウっていうんじゃなくて、起動している全ての IE の URL ってんなら Sub test1() Dim so As Object Set so = CreateObject("Shell.Application") Dim shWins As Object Set shWins = so.Windows() Dim IE As Object For Each IE In shWins MsgBox IE.LocationURL Next End Sub とかね。

7_11shop
質問者

お礼

タイトル名とURLが別々に2回メッセージボックスが 表示されてしまい、うまくいきませんでした。 ありがとうございます。

関連するQ&A