Иногда вам нужно скопировать диаграмму в Excel и вставить ее в презентацию PowerPoint с помощью VBA. Это удобно, когда вы хотите автоматизировать отчет.
Проблема: при условии, что вы не конвертируете график в изображение, и в зависимости от размера и сложности графика, который вы пытаетесь вставить, график не успевает вставить до VBA пытается продолжить процедуру. Это раздражает, когда вы хотите манипулировать графиком после его вставки (например, расположив его на слайде). Что в действительности происходит, так это то, что вы пытаетесь переместить диаграмму на слайде ... которая еще не «существует» в виде формы PowerPoint.
Эта проблема раздражает и, по моему скромному мнению, на самом деле представляет собой ошибку. Я еще не видел надежного решения проблемы SO, за возможным исключением этого ответа от Джона Пельтье. Его ответ, скорее всего, правильный (и был обозначен как таковой в потоке), но, к сожалению, я не смог заставить это работать в моей реализации.
Проблема, которую я изложил ниже.
Код (упрощенный для удобства пользования):
Public Sub X2P()
'Copy chart and paste
ActiveChart.ChartArea.Copy
Set mySlide = myPresentation.Slides(2)
PasteChartIntoSlide mySlide
End Sub
Function PasteChartIntoSlide(theSlide As Object) As Object
CreateObject("PowerPoint.Application").CommandBars.ExecuteMso ("PasteSourceFormatting")
End Function