How to create PowerPoint presentations and add slides to existing presentation with VBA?


A couple days ago, a reader asked about there is a way to programmatically  create PowerPoint presentations from scratch and add slides to an existing presentation.

As we indicated in the past, PowerPoint doesn’t ship a Macro Recorder (Excel and Word has built in recorders for Macro). Therefore, we are left with good old Visual Basic for Application that we can use to create simple Macros to automate PowerPoint. There are further alternatives for Powerpoint Automation, but those goes beyond the scope of this tutorial.

In today’s short tutorial, we’ll go over two use cases:

  1. New presentation creation (blank or usibng a template)
  2. Add slides to an existing presentation.
  3. A mix of the two above mentioned cases (Create from scratch and slides addition)

Let’s get started.

Look at the Ribbon. If you don’t see the a Developer entry in the menu, before start your coding you’ll need to enable the developer tab.

Next, hit on Developer, then hit on the Visual Basic button (or hit Alt+f11) to open the Visual Basic IDE.



VBA to Create PowerPoint Presentation

  1. In the VB Editor, right click on VBAProject and hit Insert.
  2. Select Module
  3. Paste the following code in the newly create module.
Sub CreatePresentation()
Dim NewPres as Presentation
Set NewPres = Presentations.Add
NewPres.SaveAs("MyPresentation.pptx")
End Sub
  1. Hit File and then Save.
  2. To Run your code, hit Run and then pick Run Sub/User Form (or simply F5).
  3. Close the VB editor.

VBA to insert slides

  1. In the VB Editor, right click on VBAProject and hit Insert.
  2. Select Module
  3. Paste the following code in the newly create module.
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
  1. Hit File and then Save.
  2. To Run your code, hit Run and then pick Run Sub/User Form (or simply F5).
  3. Close the VB editor.