Sending HTTP requests with VBA from Word

2019-01-07 18:18发布

I am trying to send data from a Word document to a web page. I have found some code, pasted it into a new module, and saved it. When I run it I get "compile error, user defined type not defined"

My code:

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

3条回答
我想做一个坏孩纸
2楼-- · 2019-01-07 18:46

You will need to change your references (Tools=>References in the code window). Look for Microsoft WinHTTP Services, version 5.1 (or newer) and tick the box. If you are using Vista and office 2007, you may also need to register it first. Open a command window as administrartor and paste:

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

It should say if it works.

查看更多
萌系小妹纸
3楼-- · 2019-01-07 18:54

You need to set a reference to Microsoft WinHTTP Services in your VBA Project (Tools -> References).

Here's what it would look like:

Also, you can read more about the Microsoft WinHTTP Services, version 5.1 here.

查看更多
We Are One
4楼-- · 2019-01-07 18:56

A potential alternative to avoid having to select the library is to use an object i.e.

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
查看更多
登录 后发表回答