¿Cómo hacer llamadas API en VBA?

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.

Unlock Your Potential

Excel

Basic - Advanced

Access

Access Basic - Advanced

Power BI

Power BI Basic - Advanced

Help us grow the project