Apostila de Excel

Excel e ChatGPT via API: como Conectar os Dois para Análise Automática de Dados

Aprenda a conectar o Excel e ChatGPT via API usando VBA, com código pronto, exemplos práticos e análise automática de dados em planilhas.

Conectar o Excel e o ChatGPT via API é uma das formas mais eficientes de transformar planilhas estáticas em ferramentas de análise inteligente. Em vez de copiar dados manualmente para o chat e trazer as respostas de volta, é possível automatizar todo esse fluxo diretamente dentro da planilha, com poucos cliques.

Este tutorial mostra o caminho completo: desde a geração da chave de API até o código VBA funcional que envia dados ao ChatGPT e devolve a análise direto nas células. O resultado é uma planilha que pensa junto com você.

O que é a API do ChatGPT e por que usar com o Excel

A API da OpenAI é uma interface que permite que aplicações externas, como o Excel, se comuniquem com os modelos de linguagem do ChatGPT de forma programática. Ao contrário da interface web do ChatGPT, a API permite que o Excel "converse" com o serviço por meio da internet, enviando uma requisição HTTP para uma URL e recebendo a resposta de volta, automaticamente.

O ganho prático é direto. A integração do ChatGPT ao ambiente do Excel via VBA leva a automação a um novo nível, permitindo processamento de linguagem natural, análise dinâmica de dados e até mesmo a geração de trechos de código em tempo real. Essa sinergia democratiza a análise avançada de dados, tornando-a acessível a quem não tem experiência formal em programação ou ciência de dados.

Os casos de uso mais práticos para a conexão entre Excel e ChatGPT via API incluem:

  • Análise automática de comentários e feedbacks de clientes linha por linha.
  • Classificação de dados textuais sem fórmulas complexas.
  • Geração de resumos executivos a partir de tabelas de vendas.
  • Interpretação de variações em relatórios financeiros com linguagem natural.
  • Tradução ou padronização de dados importados de diferentes fontes.

Pré-requisitos antes de começar

Antes de escrever qualquer código, é necessário garantir que todos os elementos estejam prontos. A falta de qualquer um deles impede o funcionamento da conexão.

O que você precisa ter em mãos

  • Excel com suporte a VBA (Microsoft 365 ou Excel 2016 ou mais recente).
  • Conta ativa na plataforma da OpenAI em platform.openai.com.
  • Chave de API gerada na seção API Keys da plataforma.
  • Créditos disponíveis na conta da OpenAI para consumo da API.
  • Acesso à internet durante a execução das macros.

Quanto custa usar a API do ChatGPT

O custo da API é calculado por tokens consumidos, e os valores variam conforme o modelo escolhido. A tabela abaixo apresenta os modelos mais comuns para uso em automações no Excel:

ModeloCusto por 1M tokens (entrada)Custo por 1M tokens (saída)Indicado para
GPT-4oU$ 5,00U$ 20,00Análises complexas e longas
GPT-4o MiniU$ 0,60U$ 2,40Automações rápidas e econômicas
GPT-5 MiniU$ 0,25U$ 2,00Equilíbrio entre custo e capacidade
GPT-5 NanoU$ 0,05U$ 0,40Tarefas simples e alto volume

Para a maioria das automações no Excel, o GPT-4o Mini é o modelo com melhor custo-benefício. O GPT-4o Mini foi projetado para eficiência de custo, custando aproximadamente um terço do GPT-3.5 Turbo, com suporte a janelas de contexto de até 128.000 tokens de entrada.

Como gerar a chave de API da OpenAI

Como gerar a chave de API da OpenAI

A chave de API é o elemento central da conexão entre o Excel e o ChatGPT. Para criá-la, é preciso acessar a página da OpenAI na seção API Keys, onde é possível gerar uma nova chave secreta. Com essa chave, qualquer aplicação consegue usar o ChatGPT de forma programática.

O processo passo a passo é o seguinte:

  1. Acesse platform.openai.com e faça login na sua conta.
  2. No menu lateral, clique em API Keys.
  3. Clique em Create new secret key e dê um nome descritivo à chave.
  4. Copie a chave imediatamente, pois ela não será exibida novamente.
  5. Adicione créditos em Settings > Billing para habilitar o consumo da API.

Atenção: nunca salve a chave de API diretamente no código VBA em arquivos compartilhados. O ideal é armazená-la em uma célula protegida da planilha ou em uma variável de ambiente, para evitar exposição indevida.

Como configurar o VBA no Excel para chamar a API

Com a chave de API em mãos, o próximo passo é abrir o editor de VBA e criar a macro de conexão. Para abrir o ambiente de VBA, use o atalho de teclado Alt + F11. Em seguida, acesse Inserir > Módulo para criar um novo módulo e organizar o código separadamente.

Estrutura básica de requisição HTTP no VBA

Antes de construir o código completo para o ChatGPT, é importante entender como o VBA faz requisições a APIs externas. O objeto WinHttp.WinHttpRequest.5.1 é o responsável por criar a conexão HTTP no VBA. Ele abre a conexão, define os cabeçalhos de autenticação e envia a requisição. Se o status da resposta for 200, a requisição foi bem-sucedida e o texto de resposta pode ser capturado.

A estrutura básica funciona assim:

Dim http As Object
Set http = CreateObject("WinHttp.WinHttpRequest.5.1")
http.Open "POST", "https://api.openai.com/v1/chat/completions", False
http.SetRequestHeader "Authorization", "Bearer SUA_API_KEY"
http.SetRequestHeader "Content-Type", "application/json"

Código VBA completo para conectar o Excel ao ChatGPT

O código abaixo lê o conteúdo da célula B2, envia como pergunta para o ChatGPT via API e devolve a resposta na célula C2. Basta substituir SUA_API_KEY pela chave gerada na OpenAI.

Sub ChatGPT_Analise()
    Dim http As Object
    Dim jsonBody As String
    Dim resposta As String
    Dim apiKey As String
    Dim pergunta As String
    Dim inicio As Long, fim As Long
    
    ' Configurações
    apiKey = "SUA_API_KEY"
    pergunta = ThisWorkbook.Sheets(1).Range("B2").Value
    
    ' Monta o corpo da requisição em JSON
    jsonBody = "{""model"": ""gpt-4o-mini""," & _
               """messages"": [{""role"": ""user"", ""content"": """ & _
               pergunta & """}]," & _
               """max_tokens"": 500," & _
               """temperature"": 0.3}"
    
    ' Cria e configura o objeto HTTP
    Set http = CreateObject("WinHttp.WinHttpRequest.5.1")
    http.Open "POST", "https://api.openai.com/v1/chat/completions", False
    http.SetRequestHeader "Authorization", "Bearer " & apiKey
    http.SetRequestHeader "Content-Type", "application/json"
    
    ' Envia a requisição
    http.Send jsonBody
    
    ' Verifica se a requisição foi bem-sucedida
    If http.Status = 200 Then
        resposta = http.ResponseText
        
        ' Extrai o texto da resposta do JSON retornado
        inicio = InStr(resposta, """content"": """) + 12
        fim = InStr(inicio, resposta, """")
        
        ' Escreve a resposta na célula C2
        ThisWorkbook.Sheets(1).Range("C2").Value = Mid(resposta, inicio, fim - inicio)
    Else
        ThisWorkbook.Sheets(1).Range("C2").Value = "Erro: " & http.Status
    End If
    
    Set http = Nothing
End Sub

Como adaptar o código para análise em lote

A versão acima analisa uma célula por vez. Para processar uma coluna inteira com dados de clientes, vendas ou feedbacks, o código precisa de um loop. O exemplo abaixo analisa automaticamente todas as linhas preenchidas na coluna B, a partir da linha 2, e deposita a análise do ChatGPT na coluna C correspondente:

Sub ChatGPT_Lote()
    Dim http As Object
    Dim apiKey As String
    Dim jsonBody As String
    Dim resposta As String
    Dim ultimaLinha As Long
    Dim i As Long
    Dim pergunta As String
    Dim inicio As Long, fim As Long
    
    apiKey = "SUA_API_KEY"
    ultimaLinha = ThisWorkbook.Sheets(1).Cells(Rows.Count, "B").End(xlUp).Row
    
    For i = 2 To ultimaLinha
        pergunta = ThisWorkbook.Sheets(1).Range("B" & i).Value
        
        If Trim(pergunta) = "" Then GoTo proxima
        
        jsonBody = "{""model"": ""gpt-4o-mini""," & _
                   """messages"": [{""role"": ""user"", ""content"": """ & _
                   pergunta & """}]," & _
                   """max_tokens"": 300," & _
                   """temperature"": 0.2}"
        
        Set http = CreateObject("WinHttp.WinHttpRequest.5.1")
        http.Open "POST", "https://api.openai.com/v1/chat/completions", False
        http.SetRequestHeader "Authorization", "Bearer " & apiKey
        http.SetRequestHeader "Content-Type", "application/json"
        http.Send jsonBody
        
        If http.Status = 200 Then
            resposta = http.ResponseText
            inicio = InStr(resposta, """content"": """) + 12
            fim = InStr(inicio, resposta, """")
            ThisWorkbook.Sheets(1).Range("C" & i).Value = Mid(resposta, inicio, fim - inicio)
        Else
            ThisWorkbook.Sheets(1).Range("C" & i).Value = "Erro " & http.Status
        End If
        
proxima:
    Next i
    
    MsgBox "Análise concluída para " & (ultimaLinha - 1) & " registros."
End Sub

Exemplo prático: análise de sentimento em feedbacks de clientes

Para demonstrar o uso real da conexão entre Excel e ChatGPT via API, o exemplo abaixo mostra como estruturar os dados e o prompt para análise de sentimento automática.

A planilha deve ter a seguinte estrutura inicial:

A (ID)B (Feedback do cliente)C (Análise do ChatGPT)
1Produto chegou com defeito e o suporte não resolveu(resultado aqui)
2Entrega rápida e produto excelente, recomendo!(resultado aqui)
3Preço justo mas embalagem veio danificada(resultado aqui)

Para que o ChatGPT responda com um formato padronizado, o prompt da célula B pode vir acompanhado de uma instrução. Basta ajustar o jsonBody no código para incluir um contexto fixo antes do conteúdo da célula:

jsonBody = "{""model"": ""gpt-4o-mini""," & _
           """messages"": [{""role"": ""system"", ""content"": ""Classifique o sentimento do texto como: POSITIVO, NEGATIVO ou NEUTRO. Responda somente com a palavra.""""}," & _
           "{""role"": ""user"", ""content"": """ & pergunta & """}]," & _
           """max_tokens"": 10," & _
           """temperature"": 0}"

O resultado na coluna C será preenchido automaticamente com uma única palavra por linha, pronto para análise com CONT.SE ou tabela dinâmica.

Erros comuns e como resolver

Conhecer os problemas mais frequentes economiza horas de depuração. A tabela abaixo lista os erros mais comuns na conexão entre Excel e ChatGPT via API:

ErroCausaSolução
Status 401API Key inválida ou ausenteVerifique se a chave está correta e sem espaços
Status 429Limite de requisições atingidoAguarde alguns segundos e adicione Application.Wait entre chamadas
Status 402Créditos insuficientesAdicione saldo em platform.openai.com/account/billing
Resposta vaziaProblema no parsing do JSONVerifique a extração com InStr ou use uma biblioteca JSON para VBA
Erro de compilaçãoReferência ao objeto MSXML não ativaVá em Ferramentas > Referências e ative o Microsoft XML

Perguntas Frequentes

1. A API do ChatGPT funciona no Excel para Mac?

O objeto WinHttp.WinHttpRequest.5.1 é exclusivo do Windows. No Mac, é necessário usar MacScript ou integrar via Python com scripts externos. O Power Automate é uma alternativa viável para ambos os sistemas operacionais, criando fluxos que conectam o Excel ao ChatGPT sem depender de VBA.

2. Preciso saber programar para usar esse código VBA?

Não é necessário ter experiência avançada. Operações que antes demandavam conhecimento avançado em fórmulas ou programação agora podem ser realizadas com comandos simples, e até quem não domina VBA consegue automatizar rotinas do cotidiano com pequenas adaptações nos códigos.

3. A API do ChatGPT tem limite de uso diário?

Sim. Os limites variam conforme o nível da conta e o modelo utilizado. Contas novas têm limites menores por minuto. Para automações com muitas linhas, adicione um intervalo de espera entre as chamadas com Application.Wait Now + TimeValue("0:00:02") para evitar o erro 429.

Conclusão

A conexão entre o Excel e o ChatGPT via API abre um caminho direto para automação de análises que antes exigiam trabalho manual extenso. Com a chave de API gerada, o código VBA configurado e os dados organizados em colunas, qualquer planilha passa a ter a capacidade de interpretar textos, classificar informações e gerar insights em escala, sem sair do ambiente que você já usa no dia a dia.

O ponto de entrada é simples, o custo é acessível, e o impacto na produtividade é imediato. Quem dominar essa integração hoje tem uma vantagem real em qualquer fluxo de trabalho que envolva dados não estruturados.

Ainda tem dúvidas?
Envie sua pergunta e o editor pode publicar a resposta no FAQ do artigo.
Nenhuma pergunta publicada ainda. Seja o primeiro!

Edivaldo

Edivaldo. Analista de funções e fórmulas de Excel, adoro fazer planilhas e compartilhar meus conhecimentos com as pessoas. Seja bem-vindo ao tudo Excel, onde você aprende de graça e tira suas dúvidas.

Deixe um comentário

Botão Voltar ao topo