Excel VBA Code to delete slides in PowerPoint

Dubes

New Member
Joined
Jun 20, 2019
Messages
3
Hi,

I have an excel file with a list of items in a column along with its inclusion as Yes/No in adjacent column. Based on the 'No', I need to delete some slides related to those items from the PowerPoint presentation in the same folder.

As of now, I have already created a macro to process some tasks in excel. I have also created one to open the relevant PowerPoint from the folder. But while trying to delete (ex. slide 15, 16) using the following, it throws an error 'Run-time error '429': ActiveX component can't create object'

ActivePresentation.Slides.Range(Array(15, 16)).Delete​

Subsequently, I want to replace slide 15, 16 with the relevant variables.

Requesting for some help and guidance.

Thank you,
 

Some videos you may like

Excel Facts

Move date out one month or year
Use =EDATE(A2,1) for one month later. Use EDATE(A2,12) for one year later.

RoryA

MrExcel MVP, Moderator
Joined
May 2, 2008
Messages
35,061
Office Version
365, 2019, 2016, 2010
Platform
Windows, MacOS
YOu need to post the rest of the code you have, but you haven't properly qualified Activepresentation with the PP Application object you (presumably) created.
 

Dubes

New Member
Joined
Jun 20, 2019
Messages
3
Hi Rory,

Thanks for your reply. Here's the PPT part of the Excel code. I am not so good in PowerPoint VBA, hence am trying to work through part by part.

Code:
Sub PPT_Part()


Dim FileName As String
Dim PowerPointApp As PowerPoint.Application
Dim A1, A2 As Integer
    
    Set PowerPointApp = CreateObject("PowerPoint.Application")
    FileName = ActiveWorkbook.Path & "\PPT_Main.pptm"
    PowerPointApp.Presentations.Open (FileName)
    
    ActivePresentation.Slides.Range(Array(15, 16)).Delete


End Sub
Thank you in advance,
Dubes
 
Last edited by a moderator:

RoryA

MrExcel MVP, Moderator
Joined
May 2, 2008
Messages
35,061
Office Version
365, 2019, 2016, 2010
Platform
Windows, MacOS
I'd use another variable for the presentation:

Code:
Sub PPT_Part()


Dim FileName As String
Dim PowerPointApp As PowerPoint.Application
Dim A1, A2 As Integer
    
    Set PowerPointApp = CreateObject("PowerPoint.Application")
    FileName = ActiveWorkbook.Path & "\PPT_Main.pptm"
    dim pres as PowerPoint.Presentation
    set pres = PowerPointApp.Presentations.Open(FileName)
    
    Pres.Slides.Range(Array(15, 16)).Delete


End Sub
 

RoryA

MrExcel MVP, Moderator
Joined
May 2, 2008
Messages
35,061
Office Version
365, 2019, 2016, 2010
Platform
Windows, MacOS
Glad to help. :)
 

Watch MrExcel Video

Forum statistics

Threads
1,099,986
Messages
5,471,823
Members
406,788
Latest member
cmtjack

This Week's Hot Topics

Top