2012-03-15 16 views
2

解決策を見つけるのに苦労します。 は(より具体的にExcelのVBA)のVisual Basicから私はVisual BasicでIEブラウザを使用する

AppActivate ("My Page Title - Windows Internet Explorer") 

を使用してタイトルで、Internet Explorerのウィンドウを呼び出すことができることだし、それは毎回素晴らしい作品。

私は新しいウィンドウを開き、使用して、それにURLを送信することができます。..

Dim ie As Object 
Set ie = New InternetExplorer 
ie.Visible = True 
ie.Navigate "http://websiteurl" 

そして、それも大丈夫 動作します。しかし、それは毎回、新しいブラウザを開いて、私はそれが常に同じウィンドウを呼び出したいです。

したがって、毎回同じページになるようにieを設定できます。だからではなく、

Set ie = New InternetExplorer 

のそれは(それが存在していないようですが)

Set ie = ACTIVE InternetExplorer 

のようなものがありません。 ieAppActivate ("My Page Title - Internet Explorer")と同じに設定する方法はありますか?ここ

おかげ

全コード:

Sub Find_Recordings() 
Dim MyAppID, ReturnValue 

AppActivate ("My Page Title - Windows Internet Explorer") 

SendKeys ("^a") 
Application.Wait (Now + TimeValue("0:00:01")) 
SendKeys ("^c") 
Application.Wait (Now + TimeValue("0:00:01")) 

AppActivate ("Microsoft Excel") 
Sheets("DataSearcher").Select 
Range("K1").Select 
ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon: = False 

Range("A1").Select 

Dim ie As Object 
Set ie = New InternetExplorer 
ie.Visible = True  ie.Navigate "http://wwwmyurl" 

Do Until ie.ReadyState = READYSTATE_COMPLETE 
Loop 

ie.Document.getElementById("searchdata1").Value = Range("J1") 
ie.Document.getElementById("library").Value = "RECORDINGS" 
ie.Document.searchform.Submit 



End Sub 
+1

することができますMSXMLオブジェクトを使用してWebサイトに直接投稿し、オートメーションを完全にスキップしてください。これははるかに高速です – SWa

+0

私はそれに精通していません。そのフロントエンドかバックエンドですか?私はフロントエンドに制限されています。私は恐れています。マクロで、ユーザーが手動で行うことができるものをコピーするだけですが、より速く行います。乾杯、 – paj

+1

それはフロントエンドです、私はここでそれを行う方法の例を掲載http://stackoverflow.com/questions/9486847/close-javascript-alert-using-vba-automation/9516425#9516425あなたのURLを投稿することはできますか?実際のサイト? – SWa

答えて

1

あなたが探していることをアクティブその後、特定のWebページをIEのインスタンスを識別するために、reusing Internet Explorer COM Automation Objectに大きく描く、このような何かを試みることができます。

変更
strURL = "http://www.theage.com.au/"
"マイページタイトル - WindowsのInternet Explorerの"

へ 、必要に応じて

VBA

Sub Test() 
Dim ShellApp As Object 
Dim ShellWindows As Object 
Dim IEObject As Object 
Dim strURL As String 
strURL = "http://www.theage.com.au/" 
Set ShellApp = CreateObject("Shell.Application") 
Set ShellWindows = ShellApp.Windows() 
Dim i 
For i = 0 To ShellWindows.Count - 1 
    If InStr(ShellWindows.Item(i).FullName, "iexplore.exe") <> 0 Then 
     If ShellWindows.Item(i).LocationURL = strURL Then 
      Set IEObject = ShellWindows.Item(i) 
      MsgBox "IE instance with " & strURL & " found" 
      Exit For 
     End If 
    End If 
Next 
End Sub 
+0

ありがとうBrettDJ。私はこれを試し、あなたが提案したようにURLを調整しました。しかし、動作していないようです。私はどこに座って、私の現在のコードで何が置き換えられるのか分からない。私は元の質問にサブの完全なコードを追加しました。さらなる援助が大歓迎です。ありがとう – paj

+0

@brettdj '' My Page ... ''ではなく、' strURL'を別のURLに変更すると言ったのですか? – Gaffi

+0

@pajはい、私は、あなたがIEで開いていると特定したいURLに 'StrURL'を変更することを意味しました – brettdj

関連する問題