1. Temporarily insert a sample of the shape that you want to change to
2. Select it
3. Run test2()
4. All AutoShapes on all slides will be changed to that (#1 above) shape (you can change to just Slide(1) )
5. The temp shape will be deleted
The original names and original sizes of the shapes don't change, so they're still called "Heptagon1" and the new shape fits into the old shape's box
Sub test2()
Dim oPres As Presentation
Dim oSlide As Slide
Dim oShape As Shape, oNewShape As Shape
Set oNewShape = Nothing
On Error Resume Next
Set oNewShape = ActiveWindow.Selection.ShapeRange(1)
On Error GoTo 0
If oNewShape Is Nothing Then
Call MsgBox("You must select an AutoShape", vbCritical + vbOKOnly, "Change Shapes")
Exit Sub
End If
If oNewShape.Type <> msoAutoShape Then
Call MsgBox("The selected Shape must be an AutoShape", vbCritical + vbOKOnly, "Change Shapes")
Exit Sub
End If
Set oPres = ActivePresentation
For Each oSlide In oPres.Slides
For Each oShape In oSlide.Shapes
If oShape.Type = msoAutoShape Then oShape.AutoShapeType = oNewShape.AutoShapeType
Next
Next
oNewShape.Delete
End Sub