2017年11月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
無料ブログはココログ

« Vista+IE8 で、mhtmlファイルを開くと、ゴミファイルが残る。(その3) | トップページ | IE7/IE8で、window.open()で作った子ウィンドウを.focus()でアクティブにする。 »

2009年8月13日 (木)

IEの特定のタブをアクティブにする。

AppActivate()では、バックグラウンドのタブはアクティブにできません。

そこで、指定されたURLのタブをアクティブにします。

Function TabActivate(URL)
TabActivate=True
Set Shell=CreateObject("Shell.Application")
For Each ie In Shell.Windows()
  If ie.LocationURL=URL Then Exit For
Next
If IsEmpty(ie) Then
  TabActivate="Not Found 1"
  Exit Function
End If
Set wShell=CreateObject("WScript.Shell")
If AppActivate(wShell,ie) Then Exit Function
For Each ix In Shell.Windows()
  If ix.HWND=ie.HWND Then If AppActivate(wShell,ix) Then Exit For
Next
If IsEmpty(ix) Then
  TabActivate="Not Found 2"
  Exit Function
End If
For Each ix In Shell.Windows()
  If ix.HWND=ie.HWND Then
    wShell.SendKeys "^{tab}"
    WScript.Sleep 100
    ie.StatusText=CStr(ie.HWND)
    If ie.StatusText=CStr(ie.HWND) Then Exit Function
  End If
Next
TabActivate="Not Found 3"
End Function

Function AppActivate(wShell,ie)
AppActivate=True
If ie.Document.title<>"" Then If wShell.AppActivate(ie.Document.title) Then Exit Function
LocationURL=ie.LocationURL
If Left(LocationURL,8)="file:///" Then LocationURL=Replace(UnEscape(Mid(LocationURL,9)),"/","\")
If LocationURL="about:blank" Then LocationURL="空白のページ"
If wShell.AppActivate(LocationURL) Then Exit Function
AppActivate=False
End Function

« Vista+IE8 で、mhtmlファイルを開くと、ゴミファイルが残る。(その3) | トップページ | IE7/IE8で、window.open()で作った子ウィンドウを.focus()でアクティブにする。 »