How to create and add slides to PowerPoint presentations with VBA?
A couple days ago, a reader asked about there is a way to automate creation of PowerPoint presentations from scratch and then quickly add slides to that existing presentation. I though that script might be highly in the list of the most useful PowerPoint Macros.
As we indicated in the past, PowerPoint doesn’t include a Macro Recorder (that’s unlike Excel and Word, which both have 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 three different use cases:
- New presentation creation (blank or using a template)
- Add slides to an existing presentation.
- 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.
After you make the Developer menu visible your Ribbon, go ahead and hit on Developer , then hit on the Visual Basic button (or simply go ahead and hit Alt+F11) to open the Visual Basic IDE.
VBA to Create PowerPoint Presentation
- In the VB Editor, right click on VBAProject and hit Insert .
- Select Module .
- Paste the following code in the newly create module.
- Hit File and then Save.
- To Run your code, hit Run and then pick Run Sub/User Form (or simply F5).
- Close the VB editor.
VBA to insert slides
- In the VB Editor, right click on VBAProject and hit Insert.
- Select Module
Add slides at the end of the presentation
In order to insert a new blank slide at the last position in your presentation, use the following VBA code:
Macro to make a new PPTX file and add slides to it
That would be just mixing up the two snippets outlined above. Here we go:
Get the active Powerpoint slide with VBA
Use the following code to point to the active slide in your PowerPoint presentation. Follow the instructions provided above to inset the VBA code into a module in your presentation.
Generate a PowerPoint Presentation from Excel
Last case is that you would like to create a PowerPoint presentation right from an Excel spreadsheet. You can employ the same technique from Word and other Microsoft 365 Applications.
- Link the Spreadsheet to the PowerPoint Data Model (from Tools>>References)
- Insert a button unto your Excel spreadsheet (Developer >> Insert and then pick a Command Button).
- Insert the VBA code below into your Spreadsheet VBA Project (directly into the Sheet or into a VBA Module)
- Modify the script as required.
- Run (hit F5) and test the outcome.
IMAGES
VIDEO