0

A user I work with has accidentally made their entire presentation in slide master view. That is, instead of adding slides, they have created layouts.

There is a simple partial solution, which is merely adding new slides using each of the layouts. This results in a presentation which can be displayed okay, but has certain limitations. Specifically, we collaborate a lot here, and when sharing this file with other users, nobody else will be able to edit the text in the slides without going into master view themselves.

The whole thing could be rebuilt from scratch, but it's very large so this would be too time consuming.

2
  • Couldn't you just create a new powerpoint file, copy and paste the old slides in? Then any templates will disappear but retain all your slides.
    – Eric F
    Commented Apr 10, 2018 at 13:47
  • it didn't work @EricF. I tried pasting them from the layout-based slides and the problem is reproduced exactly. I tried pasting directly from master view and it doesn't paste.
    – Greg Viers
    Commented Apr 10, 2018 at 14:51

1 Answer 1

3

One (possibly flawed) approach:

Go to each layout in master view
Press Ctrl+A to Select All
Press Ctrl+C to copy
Go back to Normal view
Add a new slide based on the BLANK layout
Press Ctrl+V to paste the content you just copied from the layout
Once done with all the layouts, go back to master view, select and delete the contents from each layout.

The flaw? This'll give you a bunch of slides that are no longer connected to layouts that'll control the appearance of the presentation. To make any wide-ranging changes, you'd need to change each and every slide. But it's a relatively quick fix, and will at least leave you with editable slides.

If the presentation will be used on more than just a few occasions and edited by a variety of people, a more complete fix might be more appropriate, even though a lot more time-consuming.

That would involve doing the above, then going through the layouts and deleting any content that's not either a) a placeholder or b) wanted on every slide based on the layout.

Then you'd need to apply the appropriate layout to each slide that was originally based on it and finally, if need be, copy text from random text boxes into the appropriate placeholders.

If you decide to go that route, here's a macro that will delete all non-placeholder shapes from each master/layout in the presentation. It won't do the whole job for you by any means but it'll at least automate a rather tedious part of it:

Sub DeleteNonPlaceholderShapes()
' Deletes non-placeholder shapes from
' each slide master and layout in a presentation
' Run this on a COPY of your presentation, never the only original.

Dim oDes As Design
Dim oLay As CustomLayout
Dim oSh As Shape

With ActivePresentation
    For Each oDes In .Designs
        Call HandleOneContainerObject(oDes.SlideMaster)
        For Each oLay In oDes.SlideMaster.CustomLayouts
            Call HandleOneContainerObject(oLay)
        Next
    Next

End With

End Sub

Sub HandleOneContainerObject(oObject As Object)

Dim x As Long

For x = oObject.Shapes.Count To 1 Step -1
    If Not oObject.Shapes(x).Type = 14 Then
        oObject.Shapes(x).Delete
    End If
Next

End Sub
2
  • This approach will work, but is too slow. If you have a macro, please provide it.
    – Greg Viers
    Commented Apr 11, 2018 at 16:29
  • See edited answer above Commented Apr 12, 2018 at 2:27

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .