2012-01-11 19 views
1

私はVBAでxmlを使用しています。以下のコードは、リモートWebサイトのショッピングカートに商品を追加します(フォームを投稿します)。次に、コードは結果をInternet Explorerに表示します。自動xmlフォーム投稿後のVBAでは、どのようにしてレスポンスとのやりとりを自動化できますか?

回答に「見積もりを取得」ボタンが表示されます。私はそれを自動的にクリックし、位置情報を入力し、私のExcel 2010ワークシート上の配送料と税金(カートに入っている商品のための)の返答を得る必要があります。

可能な場合はブラウザを介さずにショッピングカートに商品を追加したときと同じように、サイト(サイトのサーバー?)ですべての自動化されたクリックおよび入力データが直接発生するようにします。ページが読み込まれるまでには長い時間がかかります。ブラウザを使用すると、xmlを使用せずにそれを行うことができます。しかし、私は大丈夫ですブラウザを読み込まなければならない場合、私は本当に立ち往生しています。あなたは何ができるか

Option Explicit 

Sub testing() 
    Dim objIE As Object 
    Dim xmlhttp As Object 
    Dim response As String 
    Set objIE = CreateObject("InternetExplorer.Application") 
    objIE.navigate "about:blank" 
    objIE.Visible = True 
    Set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP") 
    '~~> Indicates that page that will receive the request and the type of request being submitted 
    xmlhttp.Open "POST", "http://www.craft-e-corner.com/addtocart.aspx?returnurl=showproduct.aspx%3fProductID%3d2688%26SEName%3dnew-testament-cricut-cartridge", False 
    '~~> Indicate that the body of the request contains form data 
    xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" 
    '~~> Send the data as name/value pairs 
    xmlhttp.Send "Quantity=1&VariantID=2705&ProductID=2688" 
    response = xmlhttp.responseText 
    objIE.Document.Write response 
    Set xmlhttp = Nothing 
End Sub 
+1

「VBA自動化IE」のためのGoogleの場合は、このタイプのタスクの例がたくさんあります。例:http://www.jpsoftwaretech.com/excel-vba/automate-internet-explorer/ –

+0

いいえ、私は起こることの層が1つではなく必要です。私は、自動化されたイベントのさらなる層なしで1つのことをすることができます。 – user1140067

+0

また私は役に立たないとあなたが投稿したチュートリアルはxmlhttpなしで対話するVBAのブラウザを読み込むためです。 – user1140067

答えて

0

です:

  • 利用XMLHTTPページのソースを取得する
  • さらにページを自動化するMSHTMLオブジェクトモデルを使用し

例: An exploration of IE browser methods, part II

何このページのコードがないことである:

  • MSHTML Documentオブジェクト(効果的に「ロード」内側のページへのXMLHTTP応答をIE
  • 自動割り当てよりも速くWebページのソースを取得するために、XMLHTTPのスピードを活用してくださいDOMオブジェクト)、
  • ページオブジェクトをループしたり、ボタンをクリックするなど、従来のOMメソッドを使用します。

自己拡張の危険性があるので、ティムの助言があります。彼が提供したリンクには、ページを反復して「見積もり」ボタンをクリックするか、直接参照を設定してHTMLInputElement.Clickメソッドを呼び出すために使用できるいくつかのメソッドがあります(XMLHTTPを使用してページを取得した後)。

関連する問題