Отправка HTTP-запросов с помощью VBA из Word

Я пытаюсь отправить данные из документа Word на веб-страницу. Я нашел код, вставил его в новый модуль и сохранил. Когда я запускаю его, я получаю «ошибка компиляции, определенный пользователем тип не определен»

Мой код:

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

person Saul    schedule 25.06.2010    source источник


Ответы (3)


Потенциальной альтернативой, позволяющей избежать выбора библиотеки, является использование объекта, т.е.

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
person Crispy    schedule 28.06.2010

Вам необходимо установить ссылку на службы Microsoft WinHTTP в вашем проекте VBA (Инструменты -> Ссылки).

Вот как это будет выглядеть:

Кроме того, вы можете узнать больше о Microsoft WinHTTP Services версии 5.1 здесь.

person Todd Main    schedule 25.06.2010
comment
Когда на моем визуальном базовом экране редактирования команда меню инструментов→ссылки отображается серым цветом. - person Saul; 06.07.2010
comment
@Saul: обычно это означает, что код или отладчик все еще работают. Попробуйте нажать Выполнить->Сброс, а затем Инструменты>Справочники. - person Todd Main; 06.07.2010

Вам нужно будет изменить свои ссылки (Инструменты => Ссылки в окне кода). Найдите Microsoft WinHTTP Services, version 5.1 (или новее) и поставьте галочку. Если вы используете Vista и Office 2007, вам также может потребоваться сначала зарегистрировать их. Откройте командное окно от имени администратора и вставьте:

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

Он должен сказать, работает ли он.

person Fionnuala    schedule 25.06.2010