We embed pptx files in Excel, then use Excel VBA code (like below) to open, then SaveAs the pptx file to the user's drive, then programmatically modify the pptx content based on Excel calculations.
The Excel VBA code below works fine in PowerPoint 2010 and 2013, but no longer works in PowerPoint 2016
Note: I have similar code for Word and it works fine in Word 2016 (and prior versions).
Sub OpenCopyOfEmbeddedPPTFile() 'works with Office 2010 and 2013, but not on Office 2016
Dim oOleObj As OLEObject
Dim PPTApp As Object
Dim PPTPres As Object
Dim sFileName As String
Set oOleObj = ActiveSheet.Shapes("PPTObj").OLEFormat.Object 'name of the embedded pptx object
Set PPTApp = CreateObject("Powerpoint.Application")
PPTApp.Visible = True
sFileName = "C:\Users\Me\Documents\testPPT.pptx"
OleObj.Verb Verb:=xlVerbOpen 'it opens successfully
Set PPTPres = oOleObj.Object
PPTPres.SaveAs Filename:=sFileName 'fails here (in Office 2016)
GetObject(, "PowerPoint.Application").Presentations.Open sFileName
'code to modify the Presentation (copy of the embedded pptx) based on Excel calculations
Run-time error '-2147467259 (80004005)':
Presentation.SaveAs : An error occurred while PowerPoint was saving the file.
Also, the following PowerPoint VBA (not Excel VBA) works fine for normal documents (not embedded), but fails when I run it in an opened embedded pptm. Works fine in 2013 and 2010 embedded pptm's.
Run-time error '-2147467259 (80004005)': Presentation (unknown member) : An error occurred while PowerPoint was saving the file.
Windows OS version does not seem to matter. Does not work on Office for Mac.
This error/bug occurs on all Office 2016 PCs we've tested it on.
Any way to resolve or workaround this error/bug? Or is there another way to do the same thing (modify a copy of the embedded pptx so the embedded pptx is not modified)?