1

Internet Explorerの新しいインスタンスを開く必要がなく、最初に特定のURLに移動することなく、既に開いているWebページのフォームフィールド(テキストボックスとボタン)を操作する方法を理解しようとしています。

私は現在、グーグルを開き、検索フィールドに入力し、グーグル検索ボタンをクリックする次のコードを持っています:

    Sub Main

    Dim objIE
    Dim UserN
    Dim url As String


    url = "http://www.google.com"


    Set objIE = CreateObject("InternetExplorer.Application")

    objIE.Visible = True
    objIE.navigate url

    WaitForLoad (objIE)
    ' runs the sub "Wait for Load" that waits until the page is fully loaded before continuing the script
    MsgBox "It Loaded"
    Set UserN = objIE.document.getElementsByName("q")
    If Not UserN Is Nothing Then
' fill in first element named "q", assumed to be the login name field
        UserN(0).value = "Dragon NaturallySpeaking"
    End If
    Wait 2
    Dim f
    Set f = objIE.document.getElementsByName("btnK")
    f(0).click
    End Sub
    Sub WaitForLoad (objIE)
      Do While objIE.Busy
        Wait .1
      Loop
    End Sub

私の現在の問題は、最初にwww.google.comに移動しなくても、検索フィールドに入力してGoogle検索ボタンをクリックできるようにしたいということです。たとえば、すでにブラウザを開いてwww.google.comにアクセスしましたが、テキストフィールドに入力してボタンをクリックするスクリプトを実行したいと思います。残念ながら、これを行う方法を見つけることができません。CreateObjectの代わりにSetobjIE= GetObject( "InternetExplorer.Application")を使用して、objIE.Visible =TrueとObjIE.NavigateURLを削除しようとしましたが、これはエラーを返すだけです。

4

0 に答える 0