The difficulty is figuring out what is going trigger the shape to
reappear. The code is easy (oShp.Visible = True), but when is that going
to happen? There are several possibilities.
Create a procedure that makes all your shapes visible, something like
(typing off the top of my head so it might not work perfectly):
Sub MakeAllVisible()
Dim oSld As Slide
Dim oShp As Shape
For Each oSld in ActivePresentation.Slides
For Each oShp in oSld.Shapes
oShp.Visible = True
Next oShp
Next oSld
End Sub
You could run this procedure at the beginning of the presentation (e.g.,
have a button on the first slide that says "Click here to begin" that
runs this and adds to the end of it
ActivePresentation.SlideShowWindow.View.Next to go to the next slide).
You could run this when you first get to Edit mode to make everything
reappear.
Alternatively, you could make the shapes on a particular slide visible
when you leave the slide by having something like the following attached
to the button that takes you to the next slide (again, off the top of my
head and untested):
Sub MakeThisSlidesShapesVisible()
Dim oShp As Shape
For Each oShp in ActivePresentation.SlideShowWindow.View.Slide.Shapes
oShp.Visible = True
Next oShp
ActivePresentation.SlideShowWindow.View.Next
End Sub
Another alternative would be to name all your shapes (rather these
methods that scroll through all the shapes on a slide or in the whole
slide show) and have a procedure that makes specific shapes visible.
These solutions are likely to require you to be in Kiosk mode to force
users to click on the buttons you want clicked.
--David
--
David M. Marcovitz
Microsoft PowerPoint MVP
Director of Graduate Programs in Educational Technology
Loyola College in Maryland
Author of _Powerful PowerPoint for Educators_
http://www.PowerfulPowerPoint.com/