vbaobjectpowerpoint

Deleting named objects in a Powerpoint presentation


I have some objects named"MYobject" in a PowerPoint presentation. I need a macro to delete those objects named "Myobject". How can I do that?

The code I use to tag objects:

Sub TagObject()

On Error GoTo ErrorHandler

    Dim oSh As Shape

    For Each oSh In ActiveWindow.Selection.ShapeRange
        oSh.Tags.Add "Myobject", "YES"
    Next
    MsgBox "Done! Object has now been tagged.", vbInformation
    Exit Sub

ErrorHandler:

    MsgBox "Please select an object before tagging.", vbExclamation
    End Sub

Solution

  • This will delete all shapes with a Myobject tag = "YES"

    Sub DeleteMyObjects()
    
        Dim oSl As Slide
        Dim oSh As Shape
        Dim x As Long
    
        ' note that this will not delete shapes
        ' within groups
        For Each oSl In ActivePresentation.Slides
            For x = oSl.Shapes.Count To 1 Step -1
                If UCase(oSl.Shapes(x).Tags("Myobject")) = "YES" Then
                    oSl.Shapes(x).Delete
                End If
            Next    ' Shape
        Next    ' Slide
    
    End Sub