Quer aprender como preencher PowerPoint com VBA de forma automática para automatizar seus projetos sem trabalho manual em excesso?
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.
Sub GerarCertificado()
Set objPPT = New PowerPoint.Application
Set apresModelo = objPPT.Presentations.Open(ThisWorkbook.Path & "" & "Modelo Certificado.pptx")
Set priSlide = apresModelo.Slides(1)
For Each formaSlide In priSlide.Shapes
If formaSlide.HasTextFrame Then
If formaSlide.TextFrame.HasText Then
For j = 1 To 6
itemSubst = Cells(1, j).Value
valSubst = Cells(2, j).Value
Set encontrouTxt = formaSlide.TextFrame.TextRange.Find(itemSubst)
If Not (encontrouTxt Is Nothing) Then
caractIni = formaSlide.TextFrame.TextRange.Find(itemSubst).Characters.Start
formaSlide.TextFrame.TextRange.Characters(caractIni).InsertBefore (valSubst)
formaSlide.TextFrame.TextRange.Find(itemSubst).Delete
End If
Next j
End If
End If
Next formaSlide
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
objPPT.Quit
Set objPPT = Nothing
Set apresModelo = Nothing
Set priSlide = Nothing
Set encontrouTxt = Nothing
MsgBox ("Certificado criado!")
End Sub
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!
Expert em VBA e Power BI da Hashtag Treinamentos. Auxilia no suporte aos alunos da Hashtag Treinamentos e na criação de conteúdos para os que acompanham nossos canais.