PowerPoint tips, hints and tutorials that will change your presentations for ever!



Custom Shows
vba code
Games for teachers
Flash Cards
Multiple Instances
PowerPoint 2007
Mail Merge
Random events
Set spellcheck language

Home buttonTutorial buttonContact buttonProducts button

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
               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


How to use code




Back to the Index Page


Articles on your favourite sport

Free Microsoft PowerPoint Advice, help and tutorials, Template Links
This website is sponsored by Technology Trish Ltd
© Technology Trish 2007
Registered in England and Wales No.5780175
PowerPoint® is a registered trademark of the Microsoft Corporation