No, you do not need any special event handlers. All you need to do is set
the action settings for any shape to DimAndGo. It automatically takes care
of the shape that was clicked.
Yes, the VBA can be written so the shape is not visible at all when you get
back. If you want to make it invisible, you need:
oShp.Visible = msoFalse
As John pointed out, the problem with making shapes invisible is making
them visible again. The way I generally solve this is with a procedure that
I link to a button on the first slide. That procedure is used to set
everything up the way I want it (including hiding or unhiding shapes and
initializing variables and resetting shape colors). You can see an example
of this at my site
http://www.PowerfulPowerPoint.com/
We seem to be having a temporary problem with our site this morning, so if
that link doesn't work, you can go to:
http://webdev.loyola.edu/dmarco/education/PowerfulPowerPoint/
The simplest example is Example 5.5. This actually hides shapes in my
Initialize procedure because I don't want the stars to be visible when you
start, but you could easily have it unhide things (changing False to True).
The problem is that you have a whole bunch of shapes that you will want to
unhide. You could either list them one by one in an Initialize procedure,
or you could write a simple routine to unhide everything:
Sub UnhideItAll()
Dim oSld As Slide
Dim oShp As Shape
For Each oSld in ActivePresentation.Slides
For Each oShp in oSld.Shapes
oShp.Visible = msoTrue
Next oShp
Next oSld
End Sub
This should unhide EVERY shape in the presentation, but I just scribbled it
down off the top of my head without testing so I don't guarantee it works.
--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/