Excel 2016 16.13 080401 Mac VBA Chartobject.Chart.Paste of picture does not work

This is for Excel 2016 16.13 080401 which is why I'm posting this in Insider.

I want to save a picture of a range. (for background, it's because VBA copy/paste from Excel to Powerpoint is broken and I need to export a picture and then import it in Powerpoint)

I use this code. But the Chart.Paste does not put the picture in the chart, which is the method for exporting images from Excel.

There may be a timing issue here - if I stop the code, the picture appears in the chartobject.

Sub RangePictureVBA(rgTable As Range)
   Dim oChartObject As ChartObject, shp As Object
   On Error GoTo OnError
   #If Mac Then
      rgTable.Copy ' .CopyPicture not working in Mac
      Set shp = rgTable.Worksheet.Pictures.Paste ' .DrawingObjects.paste errors, .Shapes.paste member not found
      rgTable.CopyPicture Appearance:=xlScreen, Format:=xlPicture
   #End If
   ' add a chart this way rather than charts.add that defaults to selection or all the data on the sheet
   Set oChartObject = rgTable.Worksheet.ChartObjects.Add(Left:=rgTable.Left + rgTable.Width, Width:=rgTable.Width, Top:=rgTable.Top, Height:=rgTable.Height)
   oChartObject.Chart.Paste '<<<<<<<<<<<<<<<<<<<< This does not show the picture
   oChartObject.Chart.Export Filename:="myfile.png", filtername:="PNG"


Glad to see that in Excel 16.14 build 180507, both .Copypicture and chart.paste image work.

Was this reply helpful?

Sorry this didn't help.

Great! Thanks for your feedback.

How satisfied are you with this reply?

Thanks for your feedback, it helps us improve the site.

How satisfied are you with this reply?

Thanks for your feedback.


Question Info

Last updated February 8, 2021 Views 503 Applies to: