web-dev-qa-db-ja.com

WordからVBAを使用してHTTPリクエストを送信する

Word文書からWebページにデータを送信しようとしています。コードを見つけ、新しいモジュールに貼り付けて保存しました。実行すると「コンパイルエラー、ユーザー定義型が定義されていません」が表示される

私のコード:

Sub http()

  Dim MyRequest As New WinHttpRequest

    MyRequest.Open "GET", _
    "http://www.google.com"

    ' Send Request.
    MyRequest.Send

    'And we get this response
    MsgBox MyRequest.ResponseText

End Sub
21
Saul

ライブラリを選択する必要を回避するための潜在的な代替策は、オブジェクトを使用することです。

Sub http()
Dim MyRequest As Object

    Set MyRequest = CreateObject("WinHttp.WinHttpRequest.5.1")
    MyRequest.Open "GET", _
    "http://www.google.com"

    ' Send Request.
    MyRequest.Send

    'And we get this response
    MsgBox MyRequest.ResponseText

End Sub
26
Crispy

VBAプロジェクト(ツール->参照)でMicrosoft WinHTTPサービスへの参照を設定する必要があります。

これは次のようになります。

また、Microsoft WinHTTPサービスのバージョン5.1についての詳細 here も参照できます。

21
Todd Main

参照を変更する必要があります(コードウィンドウの[ツール]→[参照])。探す Microsoft WinHTTP Services, version 5.1(またはそれ以降)にチェックを入れます。 VistaおよびOffice 2007を使用している場合は、最初に登録する必要がある場合もあります。 administrartorとしてコマンドウィンドウを開き、貼り付けます。

>regsvr32.exe "c:\windows\system32\winhttp.dll"

それが機能するかどうかを言う必要があります。

2
Fionnuala