In this article, you will learn how to pass a login and password via POST using VBA HttpRequest in Excel using Visual Basic for Applications (VBA). In this chapter, we'll cover how to enable the Developer tab. The Developer tab is not visible by default in Excel; we need to configure Excel to display it. This tab contains a variety of tools for developing and customizing Excel macro applications. With Excel VBA, you can automate tasks in Excel using macros. We'll create a simple macro that will be executed after clicking on a command button.

To pass a login and password via POST using VBA XMLHttpRequest, you can follow these steps:

  • Create the XMLHTTP Object: Declare and instantiate an XMLHttpRequest object.
  • Set the URL: Specify the URL of the endpoint where you want to send the POST request.
  • Set Request Headers: Add headers to the request if needed, such as content type.
  • Construct the Request Body: Create a string representing the data you want to send in the POST request. This string should be in the format expected by the server (e.g., form-urlencoded or JSON).
  • Send the Request: Use the .send() method of the XMLHttpRequest object to send the POST request.

Here's an example of how you can do this in VBA:

Sub SendPOSTRequest()
    Dim xhr As Object
    Dim url As String
    Dim postData As String
    Dim responseText As String
    ' Instantiate XMLHttpRequest object
    Set xhr = CreateObject("MSXML2.XMLHTTP")
    ' Specify the URL
    url = "" ' Replace with your endpoint URL
    ' Construct the request body (login and password)
    postData = "username=myusername&password=mypassword" ' Replace with your login and password
    ' Open the POST request
    xhr.Open "POST", url, False
    ' Set request headers (if needed)
    xhr.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    ' Send the POST request with the data
    xhr.send postData
    ' Get the response text from the server
    responseText = xhr.responseText
    ' Handle the response as needed
    MsgBox responseText
    ' Clean up
    Set xhr = Nothing
End Sub
Replace "" with the actual URL of the login endpoint, and "username=myusername&password=mypassword" with your login credentials in the format expected by the server. Adjust the content type and other headers as necessary for your specific use case. 
If need some test api endpoint for testing your application then you check this post -