2017-02-02 1 views
1

ウェブサイト上のボタンをクリックしてVBAを使用する方法このウェブサイトの2つの異なるボタンをクリックしてください。これでVBA/IE:その後、</p> 私はウェブサイトを開くためにVBAを使用したい <p>と:私はVBAに新しいですし、ここで誰かが次のように私を助けることができると思います

私の課題は以下のとおりです。
1)どのように私は、Webページが完全に読み込まれるまで、私は私がクリックするボタンが実際に表示されていることを確認できるように待機するようにコードを伝えることができますか?
2)固有のIDを使用してボタンを正しくアドレス指定するにはどうすればよいですか?これまで

私のコード:これですべての助けを事前に

Dim varResults As New DataObject 
Dim varButtonID As String 
Dim i As Long 
Dim objIE As Object 
Dim objElement As Object 
Dim objCollection As Object 

varResults.SetText TxtSql.Text 
varResults.PutInClipboard 

' assign button ID 
varButtonID = "Oracle_setExplainOptionsSpan" 

' create IE object 
Set objIE = CreateObject("InternetExplorer.Application") 

With objIE 
    .navigate "https://myURL" 
    .Visible = True 
End With 

While objIE.ReadyState <> 4: Wend 

objIE.document.getElementById(varButtonID).Click 

多くのおかげで、 マイク

+0

、たくさんの感謝をhttp://stackoverflow.com/questions/3275515/how-to-wait-until-webbrowser-is-completely-loaded-in-vb-net – Takarii

答えて

0

あなたはボタンをクリックし、クラス名でボタンを見つけることを試みること。

With ie.document 
    Set elements = .getelementsbytagname("input") 
    For Each e In elements 
     If (e.getattribute("className") = "btnComment") Then 
      e.Click 
      Exit For 
     End If 
    Next e 
End With 

私はあなたのページがロードされるまで待機VBAコマンドを考えることはできませんが、あなたは待つ一定時間で待機文を入力することができます。

Application.Wait(Now + #0:00:01#) 
+0

こんにちはSvekkeをチェック素早い返信。 Application.Waitは完璧です。クラス/タグ名ではなくIDでボタン要素を設定することはできませんか? – Mike

+0

もちろん、classnameの代わりに "id"を使用するだけです。この例を見てください:https://developer.mozilla.org/en-US/docs/Web/API/Element/getAttribute – Svekke

+0

もう一度ありがとう! IDを使用すると、要素を一意に識別するため、他のすべての要素をループする必要はありません。 – Mike

0

Do Whileループを使用して、ページが読み込まれるまで待ってから続行します。

Do While IE.ReadyState <> READYSTATE_COMPLETE 
Loop 
関連する問題