top of page

Printing out animated objects from a single slide on multiple pages


After a PowerPoint presentation is finalized, it's often difficult to prepare a version that can be printed in out in hard copy. If you have multiple animated objects on a single slide, it won't be possible to prepare a print copy or PDF that shows each object on a separate slide. The below vba code, posted here by by Kallis, can be used to solve this dilemma.

1. In this example we have a slide which has eight different animated objects. Although it's not the case in this example, animated objects often overlap making it hard to create a hard copy in which each displayed.

2. Press Alt + F11 to enter Visual Basic. Right click on a presentation in the project panel on the left and insert the below vba code in a new module.

3. Back in PowerPoint, go to View . . . Macros and then Run 'AddElements'.

4. The macro will generate a new slide for each animated object.

5. The original slides will remain, so delete those before printing your hard copy.

Sub AddElements() Dim shp As Shape Dim i As Integer, n As Integer n = ActivePresentation.Slides.Count For i = 1 To n Dim s As Slide Set s = ActivePresentation.Slides(i) s.SlideShowTransition.Hidden = msoTrue Dim max As Integer: max = 0 For Each shp In s.Shapes If shp.AnimationSettings.Animate = msoTrue Then If shp.AnimationSettings.AnimationOrder > max Then max = shp.AnimationSettings.AnimationOrder End If End If Next Dim k As Integer, s2 As Slide For k = 0 To max Set s2 = s.Duplicate(1) s2.SlideShowTransition.Hidden = msoFalse s2.MoveTo ActivePresentation.Slides.Count Dim i2 As Integer For i2 = s2.Shapes.Count To 1 Step -1 With s2.Shapes(i2) If .AnimationSettings.Animate = msoTrue Then If .AnimationSettings.AnimationOrder > k Then .Delete Else .AnimationSettings.Animate = msoFalse End If End If End With Next Next Next End Sub Sub RemElements() Dim i As Integer, n As Integer Dim s As Slide n = ActivePresentation.Slides.Count For i = n To 1 Step -1 Set s = ActivePresentation.Slides(i) If s.SlideShowTransition.Hidden = msoTrue Then s.SlideShowTransition.Hidden = msoFalse Else s.Delete End If Next End Sub


Sean O'Shea has more than 20 years of experience in the litigation support field with major law firms in New York and San Francisco.   He is an ACEDS Certified eDiscovery Specialist and a Relativity Certified Administrator.

​

The views expressed in this blog are those of the owner and do not reflect the views or opinions of the owner’s employer.

​

If you have a question or comment about this blog, please make a submission using the form to the right. 

Your details were sent successfully!

© 2015 by Sean O'Shea . Proudly created with Wix.com

bottom of page