- ベストアンサー
VBでURLによって処理を変えたい。
VBで現在、IEのアクティブになっているウィンドウのURLを取得することは、可能でしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
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だけでも良いです。
その他の回答 (1)
- temtecomai2
- ベストアンサー率61% (656/1071)
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 とかね。
お礼
タイトル名とURLが別々に2回メッセージボックスが 表示されてしまい、うまくいきませんでした。 ありがとうございます。
お礼
できました。完璧です。ありがとうございます。