A frequently
asked question - "I recorded a macro which changes the certain attributes
of a shape on the slide. It works fine in the Slide View mode, but not the
View Show mode. What is wrong?"
Nothing is wrong. It's the way
PowerPoint works. If you record a macro to change the Fore colo(u)r of a
shape (Rectangle 4) on the slide, the code generated would be:
|
Sub Macro1()
ActiveWindow.Selection.SlideRange.Shapes("Rectangle 4").Select
With ActiveWindow.Selection.ShapeRange
.Fill.Visible = msoTrue .Fill.Solid
.Fill.ForeColor.RGB = RGB(204, 255, 204) End With End Sub
|
The code generated clearly works
with the Selection. However during the Slide Show mode you cannot work
with the Selection. You need to explicitly reference the shape/object by
it's name/index value. Modify the earlier recorded code as shown below
|
'
Reference the shape by it's name Sub
Macro1() With ActivePresentation.Slides(1).Shapes("Rectangle
4") .Fill.Visible = msoTrue .Fill.Solid
.Fill.ForeColor.RGB = RGB(204, 255, 204) End With End Sub |
------ OR ------
|
' Reference
the shape by it's Index value
Sub Macro1() With
ActivePresentation.Slides(1).Shapes(1) .Fill.Visible =
msoTrue .Fill.Solid .Fill.ForeColor.RGB = RGB(204,
255, 204) End With End Sub |
Run the show and test the macro.
NOTE: Shyam's ToolBox offers a tool that'll give you the name of the shape/slide.
You could rename it too to something meaningful Download it from
http://skp.mvps.org/toolbox/index.html
|