Apply a shape's formatting to all similar shapes in presentation
Problem
You've slaved over some complex formatting. Clicks, dialog boxes, testing, more clicks .... wrist getting tired ... pulldown menus ... wrist starting to hurt .... but finally it's perfect.
Now. Apply it to the other two thousand similar shapes in the same presentation.
But wait. Before you run out for elastic bandages and Atomic Balm, try these two solutions:
Pre-baked
Check out PPTools ShapeStyles, an add-in for PowerPoint that lets you save your formatting to named styles, then apply these same styles to any other shape, in any other presentation, at any time you like. Save different sets of styles for different clients or projects. And much, much more. The free demo lets you create up to five styles.
For the do-it-yourselfer
Here's a neat bit of VBA from John Wilson & Technology Trish.
Sub PickItUp()
' Written by: John Wilson & Technology Trish
' Select an autoshape and run and it applies that shape's
' format to all autoshapes.
' Select a text box, apply to all text boxes
' Select a picture with a border, apply to all pictures
' Doesn't work with placeholders or slide show items by design
On Error GoTo ErrorHandler
Dim oSld As Slide
Dim oSelShp As Shape
Dim oShp As Shape
Dim lType As Long
' Results are unpredictable if you start with
' more than one shape selected, so don't permit it
If ActiveWindow.Selection.ShapeRange.Count <> 1 Then
MsgBox "Please select one and only one shape"
Exit Sub
End If
' set a reference to the selected shape
Set oSelShp = ActiveWindow.Selection.ShapeRange(1)
With oSelShp
' pick up its formatting
.PickUp
' store its type
lType = .Type
' Exclude placeholders
If lType = 14 Then
Exit Sub
End If
If .Fill.Type = msoFillPicture Then
Exit Sub
End If
For Each oSld In ActivePresentation.Slides
For Each oShp In oSld.Shapes
If oShp.Type = lType Then
If oShp.Fill.Type <> msoFillPicture Then
oShp.Apply
End If ' <> msoFillPicture
End If ' Type - lType
Next oShp
Next oSld
End With ' oSelShp
NormalExit:
Exit Sub
ErrorHandler:
MsgBox ("Sorry there's an error - Is anything selected?")
Resume NormalExit:
End Sub
See How do I use VBA code in PowerPoint? to learn how to use this example code.