Перейти к содержанию

Как выполнить запрос на VBA?#

Вы можете выполнять запросы методов API на Visual Basic for Applications (VBA).
Visual Basic for Applications — упрощённая реализация языка программирования Visual Basic, встроенная в линейку продуктов Microsoft Office (в том числе для Mac OS), а также во многие другие программные пакеты, такие как AutoCAD, SolidWorks, CorelDRAW, WordPerfect и ESRI ArcGIS.

Как выполнить запрос на VBA из Excel#

Для того чтобы выполнить запрос в Excel, необходимо включить вкладку Разработчик:
1. На вкладке Файл перейдите в раздел Параметры > Настройка ленты.
2. В разделе Настройка ленты в списке Основные вкладки установите флажок Разработчик.

web

Далее откройте вкладку Разработчик, выберите подвкладку Visual Basic.

web

В открывшемся окне VBA, перейдите во вкладку Insert > Module, чтобы создать рабочую область для написания запроса.

web

В окно модуля вставляем пример запроса на VBA. Для примера используем отправку сообщения методом SendMessage.

Sub SendMessage()
    Dim url As String
    Dim RequestBody As String
    Dim http As Object
    Dim response As String

    ' The idInstance and apiTokenInstance values are available in your account, double brackets must be removed
    url = "https://api.green-api.com/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

Чтобы выполнить запрос:
1. Введите значение idInstance и apiTokenInstance из личного кабинета, убрав двойные фигурные скобки;
2. Укажите номер получателя сообщения в поле chatId и тело сообщения в поле message;
3. Нажмите на web для запуска макроса;
4. Сообщение будет отправлено на указанный номер, тело ответа содержит ID сообщения (idMessage) и будет отображено в указанной ячейке на листе.

web