Custom Layouts Do Not Follow Slide Master
When you change fonts, bullets etc on the master normally the
related custom layouts will change to match. If they do not the most
likely cause is that the text on the layout has been manually
altered.
When this happens PowerPoint assumes that you do not want the text
to follow the master but use the change you have made. The problem
is that there is no "Make the layout follow the master again" button
and it is nearly impossible to return to the default behaviour.
To get back to the layout(s) working as before is going to be a long
difficult job. If you have a good understanding of XML you can
modify the XML for each and every layout to remove the fixed style.
This is going to be a big job even if you have the expertise.
Another way is to remake evey layout that has object placeholders.
Again this wil take a while.
The code below tries to automate the second method. Make sure you
work with a copy.
Sub fixPLC()
Dim ocl As CustomLayout
Dim oshp As Shape
Dim sngL As Single
Dim sngT As Single
Dim sngW As Single
Dim sngH As Single
Dim P As Long
Dim raySize() As Long
For Each ocl In ActivePresentation.SlideMaster.CustomLayouts
For Each oshp In ocl.Shapes
If oshp.Type = msoPlaceholder Then
If oshp.PlaceholderFormat.Type = 7 Then
sngW = oshp.Width
sngH = oshp.Height
sngT = oshp.Top
sngL = oshp.Left
ReDim raySize(1 to oshp.TextFrame2.TextRange.Paragraphs.Count)
For P = 1 To oshp.TextFrame2.TextRange.Paragraphs.Count
raySize(P) = oshp.TextFrame2.TextRange.Paragraphs(P).Font.Size
Next P
oshp.Delete
With ocl.Shapes.AddPlaceholder(7)
.Width = sngW
.Left = sngL
.Top = sngT
.Height = sngH
For P = 1 To .TextFrame2.TextRange.Paragraphs.Count
.TextFrame2.TextRange.Paragraphs(P).Font.Size = raySize(P)
Next P
End With
End If
End If
Next oshp
Next ocl
End Sub
|