で、Internet Explorerの[背景]タブをアクティブにすると、私は次のコードスニペットを持っていると仮定します。はVBA
Option Explicit
Sub Main()
Dim IE As Object
Set IE = GetIE("http://www.google.com")
' Need tabbed page for google.com to come to the foreground
End Sub
GetIE
関数はとは対照的に、GetObject
を使用して参照私と一緒に
Function GetIE(sLocation As String) As Object
Dim objShell As Object, objShellWindows As Object, o As Object
Dim sURL As String
Dim retVal As Object
Set retVal = Nothing
Set objShell = CreateObject("shell.application")
Set objShellWindows = objShell.Windows
For Each o In objShellWindows
sURL = ""
On Error Resume Next
'check the URL and if it's the one you want then
'assign it to the return value and exit the loop
sURL = o.document.location
On Error GoTo 0
If sURL Like sLocation & "*" Then
Set retVal = o
Exit For
End If
Next o
Set GetIE = retVal
End Function
については、以下でありますCreateObject
オブジェクトが実際にInternet Explorerアプリケーション内のタブである状況が発生することがあります。
問題は私のオートメーションの目的のためです。私は通常、いつでもかなりの数のタブを開いています。 IEオブジェクトを作成して、タブ付きのページwww.google.com
をフォアグラウンド(表示タブにする)にする方法はありますか?私はIE.Activate
、IE.Visible = True
、IE.Document.Focus
を試しましたが、私が必要とする結果を得ることができません。
Internet Explorerアプリケーションで表示されているタブではなく、私が必要とする(IE.Navigate
と要素をフックしてgetElementByID
を使用する)他の方法でタブを操作できることを追加する必要があります。
オブジェクトの設定に問題はありません。IEブラウザでタブをアクティブにしてアクティブなウィンドウにする方法を知りたいだけです。したがって、私が自動化しているタブがバックグラウンドであった場合、どのようにフォアグラウンドに持ってきて、タブの内容をブラウザに表示するのですか? –