Ungroup all the OLE objects in a presentation
This macro will ungroup then regroup all of the OLE embedded or linked objects in a presentation. That leaves the object looking (usually) just as it did before but removes any links to data (whether held in the PPT file itself or externally).
Because the data's discarded, the objects will no longer update, and you'll no longer be able to doubleclick to launch the application that created the objects, so you can give your presentation to someone else with no risk that they'll be able to meddle with the data.
This can also shrink some PPT files substantially.
Sub UngroupTheOLEs()
Dim oSlides As Slides
Dim oSld As Slide
Dim oShapes As Shapes
Dim oShp As Shape
Dim oShapeRange As ShapeRange
Set oSlides = ActiveWindow.Presentation.Slides
For Each oSld In oSlides
Set oShapes = oSld.Shapes
For Each oShp In oShapes
If oShp.Type = msoEmbeddedOLEObject Or _
oShp.Type = msoLinkedOLEObject Then
Set oShapeRange = oShp.Ungroup
oShapeRange.Group
End If
Next oShp
Next oSld
End Sub
See How do I use VBA code in PowerPoint? to learn how to use this example code.