Hai uns días, un lector preguntoulle que hai unha forma de automatizar a creación de presentacións de PowerPoint desde cero e despois engadir rapidamente diapositivas a esa presentación existente. Pensei que ese guión podería estar moi na lista das macros de PowerPoint máis útiles.
Como indicamos no pasado, PowerPoint non inclúe un gravador de macros (a diferenza de Excel e Word, que ambos incorporaron gravadores para Macro). Polo tanto, quédanos un bo Visual Basic para Aplicacións que podemos usar para crear Macros simples para automatizar PowerPoint. Hai outras alternativas para a automatización de PowerPoint, pero estas van máis aló do alcance deste tutorial.
No breve tutorial de hoxe, repasaremos tres casos de uso diferentes:
- Nova creación de presentacións (en branco ou usando un modelo)
- Engade diapositivas a unha presentación existente.
- Unha mestura dos dous casos mencionados anteriormente (Crear desde cero e engadir diapositivas)
Imos comezar.
Mira a cinta. Se non ves a entrada de programador no menú, antes de comezar a codificación, terás que activar a pestana de programador.
Despois de facer visible o menú Programador a túa cinta, continúa e preme Desenvolvedor e, a continuación, preme o botón de Visual Basic (ou simplemente continúa e preme Alt+F11) para abrir o IDE de Visual Basic.
VBA para crear presentacións en PowerPoint
- No Editor de VB, prema co botón dereito en VBAProject e prema Inserir .
- Seleccione Módulo .
- Pega o seguinte código no módulo de nova creación.
Sub CreatePresentation()
Dim NewPres as Presentation
Set NewPres = Presentations.Add
NewPres.SaveAs("MyPresentation.pptx")
End Sub
- Preme Ficheiro e despois Gardar.
- Para executar o teu código, fai clic en Executar e despois selecciona Executar formulario de sub/usuario (ou simplemente F5).
- Pecha o editor VB.
VBA para inserir diapositivas
- No Editor de VB, prema co botón dereito en VBAProject e prema Inserir.
- Seleccione Módulo
- Pega o seguinte código no módulo de nova creación.
Sub CreateSlide()
Dim NewSlide as Slide
'This statement ads a title slide
Set NewSlide = ActivePresentation.Slides.Add(Index:=1, Layout:=ppLayoutTitle)
'This statement adds a blank slide in the second place
Set NewSlide = ActivePresentation.Slides.Add(Index:=2, Layout:=ppLayoutBlank)
End Sub
- Preme Ficheiro e despois Gardar.
- Para executar o teu código, fai clic en Executar e despois selecciona Executar formulario de sub/usuario (ou simplemente F5).
- Pecha o editor VB.
Macro para configurar unha nova presentación e engadir diapositivas
Iso sería só mesturar os dous fragmentos descritos anteriormente.
Sub CreatePres_AddSlides()
Dim NewPres as Presentation
Dim NewSlide as Slide
Set NewPres = Presentations.Add
NewPres.SaveAs("MyPresentation.pptx")
' Title Slide
Set NewSlide = ActivePresentation.Slides.Add(Index:=1, Layout:=ppLayoutTitle)
'This statement adds a blank slide in the second place
Set NewSlide = ActivePresentation.Slides.Add(Index:=2, Layout:=ppLayoutBlank)
'Save the new PowerPoint file
NewPres.SaveAs("MyPresentation.pptx")
End Sub
A continuación, podes consultar o noso tutorial sobre a creación de formas programáticas en PowerPoint con VBA
Xera unha presentación de PowerPoint desde Excel
O último caso é que lle gustaría crear unha presentación de PowerPoint directamente desde unha folla de cálculo de Excel. Podes empregar a mesma técnica desde Word e outras aplicacións de Microsoft 365.
- Vincular a folla de cálculo ao modelo de datos de PowerPoint (desde Ferramentas>>Referencias)
- Insira un botón na súa folla de cálculo de Excel (Desenvolvedor >> Inserir e despois escolla un botón de comando).
- Insira o código VBA a continuación no seu proxecto VBA de folla de cálculo (directamente na folla ou nun módulo VBA)
- Modifique o script segundo sexa necesario.
- Executar (preme F5) e proba o resultado.
Sub CreatePresentationFromExcel()
Dim MyPPt As PowerPoint.Application
Dim NewPres As PowerPoint.Presentation
Dim NewSlide As Slide
Set MyPPt = CreateObject("PowerPoint.Application")
Set NewPres = MyPPt.Presentations.Add
Set NewSlide = MyPPt.ActivePresentation.Slides.Add(Index:=1, Layout:=ppLayoutTitle)
NewPres.SaveAs ("MyPresentation.pptx")
NewPres.Close
MyPPt.Quit
MsgBox ("Presentation saved")
End Sub
Disfrútao 🙂