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:
| Modelo | Custo por 1M tokens (entrada) | Custo por 1M tokens (saída) | Indicado para |
|---|---|---|---|
| GPT-4o | U$ 5,00 | U$ 20,00 | Análises complexas e longas |
| GPT-4o Mini | U$ 0,60 | U$ 2,40 | Automações rápidas e econômicas |
| GPT-5 Mini | U$ 0,25 | U$ 2,00 | Equilíbrio entre custo e capacidade |
| GPT-5 Nano | U$ 0,05 | U$ 0,40 | Tarefas 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

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:
- Acesse platform.openai.com e faça login na sua conta.
- No menu lateral, clique em API Keys.
- Clique em Create new secret key e dê um nome descritivo à chave.
- Copie a chave imediatamente, pois ela não será exibida novamente.
- 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) |
|---|---|---|
| 1 | Produto chegou com defeito e o suporte não resolveu | (resultado aqui) |
| 2 | Entrega rápida e produto excelente, recomendo! | (resultado aqui) |
| 3 | Preç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:
| Erro | Causa | Solução |
|---|---|---|
| Status 401 | API Key inválida ou ausente | Verifique se a chave está correta e sem espaços |
| Status 429 | Limite de requisições atingido | Aguarde alguns segundos e adicione Application.Wait entre chamadas |
| Status 402 | Créditos insuficientes | Adicione saldo em platform.openai.com/account/billing |
| Resposta vazia | Problema no parsing do JSON | Verifique a extração com InStr ou use uma biblioteca JSON para VBA |
| Erro de compilação | Referência ao objeto MSXML não ativa | Vá 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.
Faça login para participar. Entrar ou Criar conta.





