Excel: Como Criar Gerador de Certificado Automático com Excel + VBA + Power Point
- #Excel
🔹 "Já imaginou transformar horas de trabalho repetitivo em apenas alguns cliques?"
Artigo Contém Caso Real!
Me chamo Carlos, e em um belo dia meu chefe passou uma demanda, recebi uma lista em Excel ao qual precisava urgente gerar equivalente há 180 certificados em uma manha, essa atividade parecia totalmente exaustiva já que eu tinha varias coisas no dia para fazer.
Sem pensar duas vezes preferir gastar um tempinho anotando a sequência de passos que eu fazia para gerar um certificado:
- Vai na planilha em Excel
- Copia o nome do colaborador
- Vai no Power Point Cola o nome do colaborador
- Salvar como: Gera o .pdf
- Guarda na pasta
Isso sem contar que precisava fazer 180 vezes ou seja são cerca de 9 cliques por colaborador nesse processo, sem contar a navegação no teclado. Multiplicado por 180 colaboradores, isso resultaria em aproximadamente 1.620 cliques no total!😅
Neste artigo, você vai descobrir como usar Excel de forma estratégica, aprendendo a automatizar processos com VBA
Você pode estar se perguntando mas o que e o VBA no Excel?
Para SILVA(2025) O VBA e a linguagem de programação do Excel, através de gravação de macros são uma espécie de gravador de passos, elas gravam a sequencia de passos e geram um código por trás do Excel, esse código utiliza linguagem de alto nível assim como o python, e executa suas atividades em um piscar de olhos e evita sofrimento assim como eu tive.😅
O que você vai precisar?
- Pasta na Area de Trabalho com o Nome Certificado
- Arquivo Certificado Power Point com o Nome Certificado
- Planilha em Excel com Modelo Pronto das colunas Nome, Ano etc. (aqui deixo a seu critério)
Dica:
Para que ocorra tudo bem no código e necessário você preparar uma pasta reservada na sua área de trabalho especialmente para esse projeto e não mudar nem por nada nesse mundo.
Exatamente Desse jeito, assim iremos gerar os PDfs e direcionar para essa pasta
Modelo de Planilha em Excel:
Modelo de Certificado em PowerPoint:
Obs: Sinta-se a vontade para fazer o seu proprio modelo
Nessa hora você deve estar empolgado e querendo começar logo, mas antes de começar vamos Ativar a guia Desenvolvedor:
Em arquivo>Opções>Personalizar Faixa de Opcoes> Role para baixo e Clique em > Desenvolvedor > Ok
Show! Agora vamos preparar nosso Ambiente:
Com a guia desenvolvedor habilitada vamos clicar em: Visual Basic
A primeira tala será essa do nosso Visual Basic, iremos inserir um modulo, onde e uma espécie de tela para codar nosso código
Vamos na Guia Inserir> Modulo
Vamos colar o seguinte código:
Option Explicit
Sub Certificados()
Dim PPT As New PowerPoint.Application
Dim Pres As PowerPoint.Presentation
Dim Slide As PowerPoint.Slide, lin As Byte
If MsgBox("Deseja gerar os certificados?", 36, "Certificado") = 10 Then Exit Sub
' Abre a apresentação
Set Pres = PPT.Presentations.Open(ThisWorkbook.Path & "\Certificado.pptx") 'dependendo do nome do arquivo powerpoint
' Seleciona o slide desejado
Set Slide = Pres.Slides(1)
'Loop:
lin = 10 'dependendo onde comeca a linha vai precisar mudar
While Planilha1.Cells(lin, 1) <> ""
' Atualiza os textos dos campos
Slide.Shapes("Nome").TextFrame.TextRange.Text = Planilha1.Cells(lin, 1).Text 'dependendo dos nomes das colunas e das text do power point pode mudar
Slide.Shapes("Ano1").TextFrame.TextRange.Text = Planilha1.Cells(lin, "D").Text 'dependendo dos nomes das colunas e das text do power point pode mudar
Slide.Shapes("Ano2").TextFrame.TextRange.Text = Planilha1.Cells(lin, "E").Text 'dependendo dos nomes das colunas e das text do power point pode mudar
Slide.Shapes("AnoText").TextFrame.TextRange.Text = Planilha1.Cells(lin, "F").Text 'dependendo dos nomes das colunas e das text do power point pode mudar
Pres.ExportAsFixedFormat ThisWorkbook.Path & "\Certificado " & Planilha1.Cells(lin, 1) & ".pdf", ppFixedFormatTypePDF 'Aqui eu direciono sempre para area de trabalho por isso pedi que a pasta fosse junta
lin = lin + 1
Wend
Pres.Close
PPT.Quit
Set PPT = Nothing
Set Pres = Nothing
Set Slide = Nothing
MsgBox "Certificados gerados com sucesso", 64, "Concluído"
End Sub
Configurando o Ambiente:
Vamos precisar apenas de um suplemento da Microsoft para integrar nosso Power point com o Excel
Procure por: Microsoft PowerPoint 16.0 Object Library e clique no checkbox e em seguida Ok.
Revisão de Código:
Perceba que nesse bloco há o caminho que eu passo para o VBA onde este meu arquivo de certificado
' Abre a apresentação
Set Pres = PP. Presentations. Open(ThisWorkbook.Path & "\Certificado.pptx")
Para isso preciso ir até o meu Arquivo Power Point Certificado e em:
Organizar> Painel de Seleção> Ira abrir a Seleção
Ao lado você precisa renomear as caixas de texto de acordo com o as colunas da planilha
Perceba no meu Excel a Coluna A e linha 9 recebem o cabeçalho de Nome, então exatamente nesse formato eu irei por no painel de Seleção do Power Point e Assim por diante, vou deixar você explorar e fazer com outras caixas de texto se quiser!
Dica de Ouro
Perceba que vai fazer total diferença o nome da aba que você irá utilizar
No VBA ele entende que o nome Raiz dessa Planilha segue uma ordem numérica então será Planilha1 e o nome da Aba e (Plan1) isso ira fazer muita diferença sempre que você utilizar o VBA, utilize o nome raiz da aba.
E o Código VBA?
'Loop:
lin = 10
While Planilha1.Cells(lin, 1) <> ""
Aqui eu utilize uma estrutura de lopp lembra que eu falei que eram 180 registros ou seja o VBA ira percorrer minha tabela inteira ate o ultimo registro
' Atualiza os textos dos campos
Slide.Shapes("Nome").TextFrame.TextRange.Text = Planilha1.Cells(lin, 1).Text
Slide.Shapes("Ano1").TextFrame.TextRange.Text = Planilha1.Cells(lin, "D").Text
Slide.Shapes("Ano2").TextFrame.TextRange.Text = Planilha1.Cells(lin, "E").Text
Slide.Shapes("AnoText").TextFrame.TextRange.Text = Planilha1.Cells(lin, "F").Text
Altere de acordo com o total de colunas que você irá usar e passe também o local onde está armazenada
Caixa de Texto Nome no Powerpoint irá receber dados da Planilha1 na lin, que e o meu loop da coluna 1, perceba que eu posso pôr as colunas em ordem alfabética como A, B, C ou em numéricos como 1,2,3 etc.
Por fim
Pres.ExportAsFixedFormat ThisWorkbook.Path & "\Certificado " & Planilha1.Cells(lin, 1) & ".pdf", ppFixedFormatTypePDF
Aqui eu direciono a pasta que eu irei gerar meus PDFs e também onde esta localizado os meus arquivos Powerpoint e Excel por isso a minha dica inicial era deixar tudo em uma só pasta
Então Vamos lá testar?
Pressione F5 dentro do terminal VBA
Resultado
Viu ele gerou os 3 registros que eu cadastrei fictício se houvesse os 180 ele faria isso 180 vezes em menos de 1segundo
Salvando o Arquivo
Para garantir que não perderemos nada, vamos salvar nosso arquivo como uma Pasta de Trabalho Habilitada para Macro do Excel. Ao fazer isso, é importante considerar algumas questões de segurança.
Medidas de Segurança ao Usar Macros
Se você vai trabalhar com macros na sua empresa, especialmente ao utilizar pastas da rede, pode enfrentar problemas para habilitá-las. É sempre bom verificar as questões de segurança e rodar o arquivo localmente na sua máquina para evitar possíveis problemas com alertas de códigos maliciosos.
Essa é uma dica de segurança que a Microsoft adotou, afinal, há muitos códigos maliciosos que vêm com planilhas baixadas da internet. Portanto, tome muito cuidado ao baixar qualquer planilha que promete coisas milagrosas sem antes verificar a procedência do arquivo.
Como estamos construindo nossa planilha do zero, para evitar que os alertas impeçam o script, é necessário ir à pasta, clicar com o botão direito do mouse e habilitar a macro, conforme mostrado na imagem abaixo. (No meu caso, como já habilitei, não consigo mostrar, mas se você quiser testar enviando sua planilha para outro computador, precisará repetir esse processo).
Conclusão
- Então você aprendendo a Automatizar processos com VBA + Excel e um Plus com o PowerPoint
- Você aprendeu a alterar códigos VBA
- E a dica de segurança muito importante, não funciona em pasta da rede corporativa e assim que enviar para outra pessoa em propriedades precisa habilitar para que o Excel não acuse como arquivos maliciosos
Sendo assim você irá transformar 1.620 cliques em apenas 1
Desafio você a utilizar o mesmo código para fazer um gerador de recibos automáticos!
Referências:
Microsoft Corporation. VBA for Excel Documentation. Disponível em: https://learn.microsoft.com/en-us/office/vba/api/overview/excel. Acesso em: 13 de março de 2025
SILVA, Rafael da. Macros Excel VBA. 1. ed. São Paulo: Clube de Autores, 2025.
GONÇALVES, Robério. O grande livro do Excel - Intermediário e Avançado. 1ª ed. São Paulo: Camelot Editora, 2021. 128 p. ISBN 978-6587817415.