Blog

Postado em em 20 de agosto de 2021

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?

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo!

Preencher PowerPoint com VBA

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?

Preencher PowerPoint com VBA

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!


Quer aprender mais sobre VBA com um minicurso básico gratuito?

Quer sair do zero no Python e virar uma referência na sua empresa? Inscreva-se agora mesmo no Python Impressionador