Flag the existence of hidden slides
Problem
If you have hidden slides in a presentation, normally PowerPoint will jump past them during a show.
However, if you're on the slide immediately before a hidden slide, you can press H to move to the hidden slide following the current slide.
Or rather, you can do that if you happen to remember that the next slide is hidden. Aye, there's the rub. How are you going to remember that?
What if PowerPoint gave you some kind of visual warning that the next slide is hidden?
Solution
With a little VBA, you can have it do exactly that. When you run the following FlagHiddenSlides subroutine on your presentation, it'll put a red star in the lower left corner of each slide that has a hidden slide after it. With a bit of minor editing, you can change the size of the star and the color, or even have it drop in a different shape altogether.
Run DeleteTheFlagShapes to remove all of these newly added shapes at any time.
Sub FlagHiddenSlides() Dim oSl As Slide For Each oSl In ActivePresentation.Slides With oSl If .SlideShowTransition.Hidden Then ' it's hidden; flag the previous slide ' as long as this isn't slide 1 If .SlideIndex > 1 Then ' and as long as the previous slide itself isn't hidden If Not ActivePresentation.Slides(oSl.SlideIndex - 1).SlideShowTransition.Hidden Then With ActivePresentation.Slides(oSl.SlideIndex - 1) ' Change the 25s in the next line if you want a larger ' or smaller shape With .Shapes.AddShape(msoShape16pointStar, 0, _ ActivePresentation.PageSetup.Slideheight - 25, 25, 25) ' Change the color here if you like .Fill.ForeColor.RGB = RGB(255, 0, 0) ' tag it so we can delete it easily later .Tags.Add "DeleteMe", "YES" End With End With End If End If End If End With Next End Sub Sub DeleteTheFlagShapes() Dim oSl As Slide Dim x As Long For Each oSl In ActivePresentation.Slides For x = oSl.Shapes.Count To 1 Step -1 If oSl.Shapes(x).Tags("DeleteMe") = "YES" Then oSl.Shapes(x).Delete End If Next Next End Sub
Or if you'd rather flag the hidden slides themselves (for example, to make the hidden ones more obvious while you're working on your presentation), use this version of FlagHiddenSlides instead (and again use DeleteTheFlagShapes to remove the "flags"):
Sub FlagHiddenSlides() Dim oSl As Slide For Each oSl In ActivePresentation.Slides With oSl If .SlideShowTransition.Hidden Then With oSl ' Change the 25s in the next line if you want a larger ' or smaller shape With .Shapes.AddShape(msoShape16pointStar, 0, _ ActivePresentation.PageSetup.Slideheight - 25, 25, 25) ' Change the color here if you like .Fill.ForeColor.RGB = RGB(255, 0, 0) ' tag it so we can delete it easily later .Tags.Add "DeleteMe", "YES" End With End With End If End With Next End Sub
See How do I use VBA code in PowerPoint? to learn how to use this example code.