Como usar API ChatGPT no Excel VBA

Neste artigo aprenda como usar a API do ChatGPT no Excel com VBA com a planilha gratuita para download.

O ChatGPT é um sistema de inteligência artificial criado pela OpenAI, ele usa o modelo de deep learning GPT-3 que foi treinado com uma enorme quantidade de texto para criar respostas.

Nesta planilha você verá como podemos usar gratuitamente o ChatGPT no Excel à partir do consumo da sua API e uso do VBA no Excel.

No vídeo você aprenderá detalhes do código fonte, abaixo tem também o código fonte de como foi conectar com a API e download do artigo da planliha.

Importante que este exemplo serve também para conexão com outras API’s com VBA no Excel. Então pode ser facilmente adaptado.

Planilha de API ChatGPT no Excel com VBA

Este projeto funciona da seguinte forma:

  1. É digitado na célula de Texto a pergunta para o ChatGPT.
  2. Ao clicar em Enviar é enviada a mensagem para a API do ChatGPT com VBA
  3. O retorno que temos é a resposta do ChatGPT, o mesmo que vemos no link: https://chat.openai.com/
  4. Assim temos os cálculos retornados na célula de resposta, é então preenchida a pergunta e a resposta e quando fazemos novas perguntas vai adicionando a pergunta e a resposta na célula de resposta.

Como Criar um Código de API no ChatGPT

Para usar a planilha você precisa primeiro criar um código de API para o ChatGPT.

Crie o código da API no link: https://platform.openai.com/account/api-keys.

No momento é gratuito, então você consegue criar o código ali, copie ele no momento da geração.

Na configuração da planilha você cola o código da API do ChatGPT criada no site.

Nele você vê também os links do chatgpt, para a criação de conta do API key e também o link de referência para a comunicação, caso queira aprender mais sobre a API.

Código VBA para API do ChatGPT no Excel

Abaixo temos a estrutura de leitura e comunicação do VBA com a API.

Veja que abaixo temos o módulo criado e também o jsonlib que é uma biblioteca para ler um retorno json.

No Módulo1 temos o código VBA que realiza a comunicação com a API do ChatGPT.

Para o projeto é necessário usar uma biblioteca chamada Microsoft XML, v6.0.

Clique em Ferramentas->Referências e marque a opção Microsoft XML, v6.0.

O código VBA que realiza a comunicação com o VBA é o seguinte:

Option Explicit

Global lCodigo As Long

Sub lsEnviarAPIChatGPT()
    Dim xmlHttp                 As MSXML2.XMLHTTP60
    Dim jsonText                As String
    Dim APiKey                  As String
    Dim lstrRetorno             As String
    
    If base.Range("Texto").Value = "" Then
        Exit Sub
    End If
    
    APiKey = Configuracao.Range("api").Value 'varivel com a chave
    
    Set xmlHttp = New MSXML2.XMLHTTP60
    
    ' API endpoint URL
    xmlHttp.Open "POST", "https://api.openai.com/v1/completions", False
    
    xmlHttp.setRequestHeader "Authorization", "Bearer " + APiKey
    xmlHttp.setRequestHeader "Content-Type", "application/json"
    
    ' Request body
    jsonText = "{""model"":""text-davinci-003""," & _
               """prompt"":""" & base.Range("Texto").Value & """," & _
               """max_tokens"":2048," & _
               """temperature"":0}"
    
    lCodigo = lCodigo + 1
    
    xmlHttp.send (jsonText)
    
    If xmlHttp.Status = 200 Then
        If base.Range("Resposta").Value = "" Then
            base.Range("Resposta").Value = lCodigo & ". " & base.Range("Texto").Value
            base.Range("Resposta").Value = base.Range("Resposta").Value & lfLerJson(xmlHttp.responseText)
        Else
            base.Range("Resposta").Value = base.Range("Resposta").Value & vbCrLf & lCodigo & ". " & base.Range("Texto").Value
            base.Range("Resposta").Value = base.Range("Resposta").Value & lfLerJson(xmlHttp.responseText)
        End If
    Else
        MsgBox "Request failed with status code: " & xmlHttp.Status
    End If
    
    base.Range("texto").Value = ""
    
    Set xmlHttp = Nothing

End Sub

Public Function lfLerJson(ByVal lTexto As String) As String
    Dim j       As JsonLib
    Dim i       As Long
    Dim o       As Object
    
    Set j = New JsonLib
    Set o = j.parse(lTexto)
    
    lfLerJson = lfLerJson & o("choices")(1)("text") & vbCrLf
    
End Function

Public Sub lsLimpar()
    lCodigo = 0

    base.Range("texto").Value = ""
    base.Range("resposta").Value = ""
End Sub

Além disso o código VBA é explicado também no vídeo ao topo do artigo e o download está no botão abaixo, bastando colocar o código da API.

Download da Planilha API ChatGPT

Clique no botão abaixo para realizar o  download do arquivo de exemplo:

Baixe a planilha


Marcos Rieper

Pai, marido, professor e consultor em Excel.

Obrigado por ler este artigo, este blog foi criado para difundir o conhecimento em Excel à todos.

Divulgamos novos artigos nas redes sociais, basta clicar nos ícones abaixo.

Excel não precisa ser complicado

Assine nossa newsletter e receba dicas práticas para dominar o excel