How to run a VBA query?#
You can perform API method requests in Visual Basic for Applications (VBA).
Visual Basic for Applications is a simplified implementation of the Visual Basic programming language built into the Microsoft Office line of products (including for Mac OS), as well as many other software packages such as AutoCAD, SolidWorks, CorelDRAW, WordPerfect and ESRI ArcGIS.
How to run a VBA query from Excel#
In order to run a request in Excel, you must enable the Developer tab:
- On the
Filetab, go toOptions>Customize Ribbon. - In the
Customize Ribbonsection, in theMain Tabslist, select theDevelopercheckbox.

Next, open the Developer tab, select the Visual Basic subtab.

In the VBA window that opens, go to the Insert > Module tab to create a workspace for writing the query.

Insert an example VBA query into the module window. For example, we use sending a message using the SendMessage method.
Sub SendMessage()
Dim url As String
Dim RequestBody As String
Dim http As Object
Dim response As String
' The apiUrl, idInstance and apiTokenInstance values are available in console, double brackets must be removed
url = "{{apiUrl}}/waInstance{{idInstance}}/sendMessage/{{apiTokenInstance}}"
' chatId is the number to send the message to (@c.us for private chats, @g.us for group chats)
RequestBody = "{""chatId"":""70123456789@c.us"",""message"":""Hello World""}"
Set http = CreateObject("MSXML2.XMLHTTP")
With http
.Open "POST", url, False
.setRequestHeader "Content-Type", "application/json"
.Send RequestBody
End With
response = http.responseText
Debug.Print response
' Outputting the answer to the desired cell
Range("A1").Value = response
Set http = Nothing
End Sub
To run a request:
1. Enter the value of apiUrl, idInstance and apiTokenInstance from console, removing the double curly braces;
2. Specify the number of the message recipient in the chatId field and the message body in the message field;
3. Click on
to run the macro;
4. The message will be sent to the specified number, the response body contains the message ID (idMessage) and will be displayed in the specified cell on the sheet.
