Preencher PowerPoint com VBA de Forma Automática
Quer aprender como preencher PowerPoint com VBA de forma automática para automatizar seus projetos sem trabalho manual em excesso?
Para preencher o PowerPoint com VBA de forma automática, use o VBA do Excel para abrir a apresentação (CreateObject("PowerPoint.Application")), percorrer os slides e substituir textos ou inserir dados de uma planilha nas caixas de texto. Assim você gera apresentações em série sem digitar nada manualmente.
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo!
Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:
Já imaginou você tendo as informações de 100 alunos e tendo que preencher um tipo de certificado, mas todos eles de forma manual?

Isso levaria muito tempo e seria algo bem trabalhoso, mas com PowerPoint VBA isso vai ser feito em alguns minutos, trabalho que você provavelmente levaria ao menos 1 hora ou até mais para fazer.
Hoje eu vou te mostrar como preencher uma apresentação em PowerPoint com VBA! Você vai poder automatizar o preenchimento do PowerPoint com VBA.
Acompanhe com a gente seguir o código usado em aula para gerar os certificados.
<strong>Sub GerarCertificado()</strong><br><br><strong>Set objPPT = New PowerPoint.Application</strong><br><strong>Set apresModelo = objPPT.Presentations.Open(ThisWorkbook.Path & "" & "Modelo Certificado.pptx")</strong><br><strong>Set priSlide = apresModelo.Slides(1)</strong><br><br><strong>For Each formaSlide In priSlide.Shapes</strong><br><br><strong> If formaSlide.HasTextFrame Then</strong><br><br><strong> If formaSlide.TextFrame.HasText Then</strong><strong> </strong><br><br><strong> For j = 1 To 6</strong><br><br><strong> itemSubst = Cells(1, j).Value</strong><br><strong> valSubst = Cells(2, j).Value</strong><strong> </strong><br><br><strong> Set encontrouTxt = formaSlide.TextFrame.TextRange.Find(itemSubst)</strong><strong> </strong><br><br><strong> If Not (encontrouTxt Is Nothing) Then</strong><br><br><strong> caractIni = formaSlide.TextFrame.TextRange.Find(itemSubst).Characters.Start</strong><br><strong> formaSlide.TextFrame.TextRange.Characters(caractIni).InsertBefore (valSubst)</strong><br><strong> formaSlide.TextFrame.TextRange.Find(itemSubst).Delete</strong><br><br><strong> End If</strong><br><strong> Next j</strong><strong> </strong><br><br><strong> End If</strong><br><br><strong> End If</strong><br><br><strong>Next formaSlide</strong><br><strong> </strong><br><strong>apresModelo.SaveAs "C:UsersdamorOneDriveHashtag (1)OnlineConteúdosPlanilhas2021VBA8-13 - Como Preencher uma Apresentação em PowerPoint com VBACertificados" & Cells(2, 1).Value & " - " & Cells(2, 2).Value, ppSaveAsPDF</strong><br><br><strong>objPPT.Quit</strong><br><br><strong>Set objPPT = Nothing</strong><br><strong>Set apresModelo = Nothing</strong><br><strong>Set priSlide = Nothing</strong><br><strong>Set encontrouTxt = Nothing</strong><br><br><strong>MsgBox ("Certificado criado!")</strong><br><br><strong>End Sub</strong>Comentários a respeito do código:
- Vamos “setar” uma variável chamada “objPPT” que representará o objeto do programa do Power Point em si, que vai ser criado no começo
- Vamos “setar” uma variável chamada “apresModelo” que representará o objeto do arquivo a ser aberto, que de fato vai ser o arquivo modelo de certificado que disponibilizamos para vocês, que vai estar no caminho da (mesma) pasta do arquivo em Excel (dada pelo comando Path) concatenado com “Modelo Certificado.pptx”
- Em seguida vamos definir uma variável (priSlide) que será responsável por representar exatamente o primeiro slide (Slides(1)) da nossa apresentação aberta (apresModelo), porque é apenas nele que queremos mexer (e garantiremos que será no slide de número 1)
- Vamos usar de uma estrutura de repetição For Each para percorrer cada uma (formaSlide) das formas presentes no primeiro slide (priSlide), fazendo a conferência que queremos, explicada a seguir
- Em uma dada estrutura, vamos fazer duas verificações de condições utilizando duas estruturas If que vão testar se em cada formaSlide no priSlide temos um objeto que comporta texto (TextFrame), e se nesse objeto temos algum texto escrito (HasText)
- Depois de estar num objeto que comporta um texto e tem um texto escrito dentro dele, vamos utilizar uma estrutura de repetição for no VBA para repetir ações da coluna 1 até a coluna 6 da nossa tabela do o Excel (representada pela letra j), porque sabemos que nossos dados a serem substituídos estão nas colunas 1 até 6, e eles que vão ser informações a serem substituídas no primeiro slide (priSlide) do arquivo em Power Point aberto (apresModelo).
- A cada coluna (j) analisada, armazenar na variável itemSubst o texto que estiver na nossa primeira linha de cabeçalho da tabela do Excel
- E na variável valSubst estiver na nossa segunda linha no Excel, de fato o que tiver de informação na tabela
- Em seguida executar a procura (Find) dentro do TextFrame de cada formaSlide e armazenar esse “objeto” dentro da variável encontrouTxt
- Se ele encontrar aquela procura, significa que o texto procurado (itemSubst) está dentro da formaSlide em questão, e a nossa variável encontrouTxt não será vazia (Nothing)
- Vamos, então, testar através de uma condição If se essa variável é vazia (Nothing): se ela não (If Not) é vazia (Nothing), quer dizer que temos de fato essa variável com algo armazenado, e uma ação será feita no Power Point
- Caso essa condição seja verdadeira, vamos armazenar na variável caractIni a posição inicial (Start) de caractere em que encontramos aquele texto pesquisado (itemSubst) no nosso TextFrame
- Em seguida vamos colocar o valor da variável valSubst exatamente na posição de caractere caractIni, dentro da formaSlide no priSlide
- Em seguida vamos pesquisar pelo texto a substituir (itemSubst) naquela formaSlide e vamos apagar (Delete) quando encontra-lo, em seguida
- Seguiremos para a próxima coluna e próxima forma dentro do priSlide até as estruturas de repetição acabarem
- Quando todas as substituições forem feitas, vamos salvar o apresModelo através do método SaveAs concatenando o caminho do arquivo com o que estiver na célula A2 e na B2 da nossa planilha em Excel, que são respectivamente o #NOME_ALUNO e #NOME_CURSO
- Após tudo ser feito, iremos por boas práticas fechar o Power Point (objPPT) pelo método Quit
- Por boas práticas vamos esvaziar as variáveis objPPT, apresModelo, priSlide, encontrouTxt (Nothing) para que elas não fiquem armazenadas o tempo inteiro na memória do computador enquanto o arquivo está aberto no Excel
- Será gerada uma mensagem ao final do código (MsgBox) informando que o certificado foi gerado com sucesso
- Se encerra o código
Conclusão de Como Preencher PowerPoint com VBA
Nessa aula você aprendeu como usar o Excel para preencher uma apresentação em PowerPoint, então você vai poder utilizar esse conhecimento para certificados em qualquer tipo de apresentação que precise preencher informações de forma automática.
Isso é muito útil, porque se você tem processos repetitivos saiba que eles podem ser automatizados, e com o VBA isso vai se tornar algo muito rápido e eficiente do que de forma manual.
Aqui no canal nós mostramos como fazer esse preenchimento em um arquivo de Word e agora você vai aprender como fazer Power Point com VBA.
Até a próxima, pessoal! Fique ligado no nosso canal do Youtube para mais conteúdo de Excel e VBA! Um abraço!
Hashtag Treinamentos
Para acessar outras publicações de VBA, clique aqui!
1. Dá para automatizar o PowerPoint com VBA?
Sim. Pelo VBA (geralmente do Excel) você controla o PowerPoint: abre apresentações, percorre slides, substitui textos e insere dados de uma planilha, gerando apresentações automaticamente.
2. Como o Excel se conecta ao PowerPoint via VBA?
Use CreateObject(‘PowerPoint.Application’) para iniciar o PowerPoint a partir do Excel, abra a apresentação e acesse os slides e formas pelo código. Assim os dados da planilha alimentam os slides automaticamente.
3. Para que serve preencher PowerPoint com VBA?
Para gerar apresentações em série a partir de um modelo, como relatórios mensais, certificados ou propostas, sem digitar tudo manualmente. Os dados vêm de uma planilha e o VBA monta cada slide.
4. Preciso habilitar macros para usar VBA no PowerPoint?
Sim. Salve o arquivo em formato habilitado para macros (.pptm ou .xlsm) e habilite as macros nas configurações de segurança do Office para que o código VBA possa ser executado.