web-dev-qa-db-fra.com

Envoi de requêtes HTTP avec VBA à partir de Word

J'essaie d'envoyer des données d'un document Word à une page Web. J'ai trouvé du code, l'ai collé dans un nouveau module et l'ai enregistré. Lorsque je l'exécute, j'obtiens "erreur de compilation, type défini par l'utilisateur non défini"

Mon 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
21
Saul

Une alternative potentielle pour éviter d'avoir à sélectionner la bibliothèque est d'utiliser un objet, c'est-à-dire.

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

Vous devez définir une référence aux services Microsoft WinHTTP dans votre projet VBA (Outils -> Références).

Voici à quoi cela ressemblerait:

En outre, vous pouvez en savoir plus sur les services Microsoft WinHTTP, version 5.1 ici .

21
Todd Main

Vous devrez modifier vos références (Outils => Références dans la fenêtre de code). Chercher Microsoft WinHTTP Services, version 5.1 (ou plus récent) et cochez la case. Si vous utilisez Vista et Office 2007, vous devrez peut-être également l'enregistrer d'abord. Ouvrez une fenêtre de commande en tant qu'administrateur et collez:

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

Il devrait dire si cela fonctionne.

2
Fionnuala