2010-06-25 12 views
20

Estoy tratando de enviar datos desde un documento de Word a una página web. Encontré un código, lo pegué en un nuevo módulo y lo guardé. Cuando lo ejecuto me sale "Error de compilación, el tipo definido por el usuario no definido"Envío de solicitudes HTTP con VBA desde Word

Mi código:

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 

Respuesta

23

Una posible alternativa para evitar tener que seleccionar la biblioteca es el uso de un objeto, es decir

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 
+0

Esto funcionó para mí, gracias – Saul

2

Usted tendrá que cambiar sus referencias (Herramientas => Referencias en la ventana de código). Busque Microsoft WinHTTP Services, version 5.1 (o más reciente) y marque la casilla. Si está usando Vista y Office 2007, es posible que también deba registrarlo primero. Abra una ventana de comandos como administrador y pegue:

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

Debería decir si funciona.

18

Debe establecer una referencia a los Servicios WinHTTP de Microsoft en su Proyecto VBA (Herramientas -> Referencias).

Esto es lo que se vería así:

Además, se puede leer más acerca de Microsoft WinHTTP Servicios, versión 5.1 here.

+0

Cuando en mi pantalla de edición visual básico del comando de menú Herramientas> referencias está en gris. – Saul

+2

@Saul: Esto generalmente significa que el código o el depurador aún se está ejecutando. Intente hacer clic en Ejecutar-> Restablecer y luego después de Herramientas> Referencias. –

Cuestiones relacionadas