Sub EditPowerPointLinks() 'Set the link to the Object Library: 'Tools -> References -> Microsoft PowerPoint x.xx Object Library Dim oldFilePath As String Dim newFilePath As String Dim sourceFileName As String Dim pptApp As New PowerPoint.Application Dim pptPresentation As Object Dim pptSlide As Object Dim pptShape As Object 'The file name and path of the file to update Worksheets("Links").Select sourceFileName = Range("B1").Value 'The old file path as a string (the text to be replaced) Worksheets("Links").Select oldFilePath = Range("B2").Value 'The new file path as a string (the text to replace with) Worksheets("Links").Select newFilePath = Range("B3").Value 'Set the variable to the PowerPoint Application Set pptApp = New PowerPoint.Application 'Make the PowerPoint application visible pptApp.Visible = True 'Set the variable to the PowerPoint Presentation Set pptPresentation = pptApp.Presentations.Open(sourceFileName) 'Loop through each slide in the presentation For Each pptSlide In pptPresentation.Slides 'Loop through each shape in each slide For Each pptShape In pptSlide.Shapes 'Find out if the shape is a linked object or a linked picture If pptShape.Type = msoLinkedPicture Or pptShape.Type = msoLinkedOLEObject Or pptShape.Type = msoLinkedChart Then 'Use Replace to change the oldFilePath to the newFilePath pptShape.LinkFormat.SourceFullName = Replace(LCase(pptShape.LinkFormat.SourceFullName), LCase(oldFilePath), newFilePath) End If Next Next pptPresentation.UpdateLinks 'Save, close and quit the application pptPresentation.Save pptPresentation.Close pptApp.Quit 'Release the memory Set pptApp = Nothing Set pptPresentation = Nothing Set pptSlide = Nothing Set pptShape = Nothing End Sub