Para hacer llamadas API en VBA (Visual Basic for Applications), puedes emplear el objeto `XMLHttpRequest`. Este objeto te permite enviar solicitudes HTTP a un servidor y manejar las respuestas. A continuación, te muestro un ejemplo de cómo realizar una solicitud GET a una API:
Paso a Paso para Realizar una Solicitud GET:
Sub LlamadaAPIGET()
Dim http As Object
Dim url As String
Dim respuesta As String
' Crear objeto para la solicitud HTTP
Set http = CreateObject("MSXML2.XMLHTTP")
' Establecer la URL de la API
url = "https://api.example.com/endpoint" ' Reemplaza con la URL de tu API
' Configurar y enviar la solicitud
http.Open "GET", url, False
http.Send
' Verificar el estado de la respuesta
If http.Status = 200 Then
respuesta = http.responseText
MsgBox "Respuesta de la API: " & respuesta
Else
MsgBox "Error en la llamada a la API: " & http.Status & " - " & http.statusText
End If
' Limpiar el objeto
Set http = Nothing
End Sub
- Abrir el Editor de VBA:
- Abre tu aplicación de Excel (o cualquier otra aplicación de Office que soporte VBA).
- Presiona `ALT + F11` para abrir el Editor de VBA.
- Insertar un Módulo Nuevo:
- En el Editor de VBA, haz clic en `Insertar` > `Módulo` para crear un nuevo módulo.
- Escribir el Código VBA:
- Copia y pega el siguiente código en el módulo:
Explicación del Código:
- Creación del Objeto: Usamos `CreateObject(“MSXML2.XMLHTTP”)` para crear una instancia del objeto `XMLHttpRequest`.
- Configuración de la Solicitud:
- `http.Open` se utiliza para configurar el tipo de solicitud (en este caso, “GET”) y la URL de destino.
- `http.Send` envía la solicitud al servidor.
- Manejo de la Respuesta:
- Verificamos si el `http.Status` es 200 para asegurarnos de que la solicitud se completó con éxito.
- `http.responseText` contiene la respuesta de la API, que se muestra en un cuadro de mensaje.
- Ejecutar la Macro:
- Desde Excel, puedes ejecutar la macro `LlamadaAPIGET` para probar la llamada a la API.
Consideraciones:
- Biblioteca de MSXML2: Asegúrate de que MSXML2 está disponible y registrado en tu sistema.
- Errores y Excepciones: La mayoría de las APIs requieren manejo de errores más sofisticado, especialmente cuando esperas datos específicos o si trabajas con APIs que exigen autenticación.
- API Seguras: Si se requiere autenticación o headers adicionales (como tokens de API o headers específicos), deberás añadir esas configuraciones al método `http.Open` y/o utilizar `http.setRequestHeader`.
Si necesitas realizar métodos POST o agregar autenticación, el procedimiento es similar, pero deberás ajustar la llamada de acuerdo a las especificaciones de la API que utilizas.