Interactive PowerPoint slide show for expousing VBA to facilitate manual/automatic playback and custom navigation
We recently got asked to build a deck for a trade show. We’ve done them before, you know the kind of thing, an automatic loop on a big screen? Only this time the client said:
“I would like part of the deck to run automatically in a loop so that it attracts visitors, which they can pause/resume. If they have questions, a sales person can take over and drive the rest of the deck interactively and manually. This will override any automatic transitions. All interaction must be via the touch screen as there will be no mouse or keyboard.”
Hmm… we thought. After some head scratching we came up with the idea to build a single deck containing multiple custom slide shows and add a navigation layer, embellished with a sprinkling of VBA magic. This is a high-level view of the project:
- One deck
- Forty or so slides, each with auto transition timings
- Six sections, each with their own custom slide show
- A little sprinkling of VBA magic (less than 20 lines of active code)
How Does it Work?
The presentation comprises around 40 slides. These are divided into sections and each section has its own corresponding custom slide show. To build a custom show you simply click Slide Show / Custom Slide Show / Custom Shows… and then click New to create a new custom show that can then be linked to using Insert / Link.
Once these are built, all slides are marked as hidden, except those in the first section, which is the one we want to run continuously in a loop. To make this happen, we set up the show as follows:
The next part involves creating the navigation buttons. To do this we use the Slide Master (View / Slide Master) and we create the icons that are seen in the teal bar on the left hand side of the display.
For the first 5 white icons and the “home” icon, we simply insert a link to their corresponding custom slide shows by clicking Insert / Link and then selecting Place in This Document before scrolling down the the Custom Shows:
Now the VBA Magic
So far we haven’t used anything other than standard PowerPoint features to build the project. The requirement to be able to pause the slide show, which has automated timed transitions from one slide to the next, means we need to use VBA. Why? Because there is no keyboard on the booth and we want to provide visitors with a self explanatory user interface so that they may navigate the content themselves should they wish to do so.
The play/pause button toggle is made up of two icons, one placed directly on top of the other one. We want to do three things when each icon is tapped (clicked). Firstly, we want to hide the icon that was clicked, show the other icon and then either pause or resume the slide show. Because we have three things to do, we’re not using animation triggers but running a VBA macro do do it for us.
Show Thumbnails Button
The show slide thumbnails button allows the person interacting with the slide show to display a graphical view of all of the slides in the current section / custom show. They can then click on any one of them to continue the slide show with that slide. This is typically used by a sales person when they want to jump around the section in a no-linear way so as to be able to respond to their audience’s questions. This is what the thumbnail view looks likes when our button is pressed:
If we had a keyboard, you can see how we can zoom out to see this view in this help dialog, which you can access by pressing F1 in slide show mode:
Our macro for this button is therefore really simple. All we have to do is send one of these keystrokes when the user taps/click the button. Here’s the macro to send the hyphen character during the slide show:
With the multi custom slide show set complete and the navigation bar integrated, all that was left to do was to add some additional features which initialised the project as the file was opened in PowerPoint. This performed functions such as resetting the state of the buttons and displaying a message to the booth team confirming that VBA was running and that the slide show was ready to start. We used application events and the Microsoft Office mechanism for UI extensibility to facilitate this as explained in this article.
Do you need help with your next presentation project? It might be for a trade show, a sales deck, maybe even a video. Whatever your presentation needs, including custom PowerPoint add-in design, we’re here to help.