151

Excel スプレッドシートから HTTP POST を実行するには、どの VBA コードが必要ですか?

4

6 に答える 6

160
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
URL = "http://www.somedomain.com"
objHTTP.Open "POST", URL, False
objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
objHTTP.send ""

WinHttp.WinHttpRequest.5.1または、HTTP リクエストをより詳細に制御するには、 の代わりに使用できますMSXML2.ServerXMLHTTP

于 2008-10-01T17:03:29.323 に答える
56

Mac と Windows の両方で動作させる必要がある場合は、QueryTables を使用できます。

With ActiveSheet.QueryTables.Add(Connection:="URL;http://carbon.brighterplanet.com/flights.txt", Destination:=Range("A2"))
    .PostText = "origin_airport=MSN&destination_airport=ORD"
    .RefreshStyle = xlOverwriteCells
    .SaveData = True
    .Refresh
End With

ノート:

  • 出力に関して... VBA関数を呼び出した同じセルに結果を返すことができるかどうかはわかりません。上記の例では、結果は A2 に書き込まれます。
  • 入力について...特定のセルを変更したときに結果を更新する場合は、それらのセルがVBA関数の引数であることを確認してください。
  • これは、VBA を持たない Excel for Mac 2008 では機能しません。Excel for Mac 2011 では VBA が復活しました。

詳細については、「Excel から Web サービスを使用する」に関する私の完全な要約を参照してください。

于 2011-01-06T17:07:15.407 に答える
8

ServerXMLHTTPへの参照を追加することで、VBA プロジェクトで使用できますMSXML

  1. VBA エディタを開きます (通常はマクロを編集して)
  2. 利用可能な参照のリストに移動します
  3. Microsoft XML を確認する
  4. [OK] をクリックします。

( VBA プロジェクト内での MSXML の参照から)

ServerXMLHTTP MSDN ドキュメントには、ServerXMLHTTP のすべてのプロパティとメソッドに関する詳細が記載されています。

要するに、基本的には次のように機能します。

  1. openメソッドを呼び出してリモート サーバーに接続する
  2. sendを呼び出してリクエストを送信します。
  3. responseXMLresponseTextresponseStreamまたはresponseBodyを介して応答を読み取る
于 2008-10-01T17:01:08.517 に答える
1

MSXML ライブラリを使用する前にこれを行い、次に XMLHttpRequest オブジェクトを使用しました。こちらを参照してください。

于 2008-10-01T17:03:18.170 に答える