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)
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
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.
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.
Procure o que você quiser sobre Excel, VBA, Power BI ou Python:
Aprenda tudo de Excel para se tornar uma referência no Mercado de Trabalho
Leve os treinamentos da Hashtag para dentro da sua Empresa