Nicole P.
Nicole P.

Reputation: 25

What are some other methods I can use INSTEAD of "ActivePresentation" in PowerPoint VBA

I'm currently working on PowerPoint VBA and writing a code to be able to copy the first slide and paste it again in the same presentation. However, I keep getting the error "Clipboard is empty or contains data which may not be posted here" and according to Microsoft page the problem is the use of "ActivePresentation"

I'm looking for another way to refer to the slide that I have open without using ActivePresentation. Any help? Ideas?

The line of code I use ActivePresentation is below:

ActivePresentation.Slides(1).Copy
ActivePresentation.Slides.Paste(ActivePresentation.Slides.Count=1)

Upvotes: 1

Views: 368

Answers (2)

Steve Rindsberg
Steve Rindsberg

Reputation: 14809

Slight variant on Harassed Dad's solution. PPT barks at the Set line because Duplicate returns a SlideRange object rather than a Slide object. .Duplicate(1) returns the first slide in the range as a Slide object. This duplicates slide 2 and moves it to the first position in the presentation.

Sub CopySlide()
    Dim oSl As Slide
    With ActivePresentation
        Set oSl = .Slides(2).Duplicate(1)
        oSl.MoveTo (1)
    End With
End Sub

Upvotes: 1

Harassed Dad
Harassed Dad

Reputation: 4714

Don't copy, duplicate

Dim NewSlide as Slide
Set newSlide = ActivePresentation.Slides(1).Duplicate
NewSlide.MoveTo toPos:=4  'move it to become the fourth slide

Upvotes: 2

Related Questions