Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PowerPoint VBA - Paste Special (Enhanced Metafile) bug

Tags:

powerpoint

vba

I am using a macro in PowerPoint 2003 SP3 to find a specified chart in an Excel workbook, copy it, and then paste it into the current slide as an Enhanced Metafile with, ultimately, the following line of code:

Application.ActiveWindow.View.PasteSpecial DataType:=ppPasteEnhancedMetafile

As often as it works, I also receive the following error:

Run-time error '-2147188160 (80048240)':
View (unknown member) : Invalid request. The specified data type is unavailable.

If I end the macro and attempt to manually Paste Special as Enhanced Metafile, I have no problem, so it's not as though the clipboard object or the pastespecialtype is invalid.

Has anyone else experienced this? Do you have a solution or a workaround? There are few results and no solutions in a Google search on this error.


Update

The general code is as follows:

Set presPPTCurrent = ActivePresentation
Set objXLApp = GetObject(, "Excel.Application")

''#Find the target chart and copy it to the clipboard
With objXLApp
    ''#This part works - if I go to Excel, I can see that the chart is copied
End With

''#Now paste in the chart as an Enhanced Metafile
presPPTCurrent.Application.Activate
Application.ActiveWindow.View.PasteSpecial DataType:=ppPasteEnhancedMetafile

Note that this is in a Sub to which a Shape is passed (the Shape being passed is used as a reference to find the chart in Excel). I've realized that it only bugs when I attempt to reuse this sub on multiple shapes passed from a For Next loop in another Sub.

However, if I pass a single Shape to this Sub with via another Sub and then re-run the Sub that passes multiple Shapes, it runs fine.


Solution

Per Otaku's mention, the macro was losing its focus on the Slide Pane. Telling it to re-select the Slide Pane solved the issue.

Application.ActiveWindow.Panes(2).Activate
like image 515
variant Avatar asked Oct 14 '22 03:10

variant


1 Answers

This is likely a loss of focus where switching between Excel and PowerPoint is causing PowerPoint to lose focus and therefore there is no ActiveWindow for PowerPoint to paste in to or the ActiveWindow becomes a different Pane in PowerPoint, such as the Slide Sorter or the Notes pane.

like image 93
Todd Main Avatar answered Oct 19 '22 07:10

Todd Main