Sub Visual()
Dim PowerPointApp As Object
Dim myPresentation As Object
Dim mySlide As Object
Dim myShape As Object
If ActiveChart Is Nothing Then
MsgBox "please select chart"
Exit Sub
End If
If PowerPointApp Is Nothing Then _
Set PowerPointApp = CreateObject(class:="PowerPoint.Application")
On Error GoTo 0
Application.ScreenUpdating = False
If PowerPointApp Is Nothing Then _
Set myPresentation = PowerPointApp.Presentations.Add
Set myPresentation = PowerPointApp.Presentations.Open(Filename:="D:\test.pptx")
Set mySlide = myPresentation.Slides.Add(1, 11) '11 = ppLayoutTitleOnly
For Each co In ActiveSheet.ChartObjects
co.Chart.ChartArea.Copy
mySlide.Shapes.Paste
Set myShape = mySlide.Shapes(mySlide.Shapes.Count)
myShape.Left = 200
Next co
myShape.Top = 200
PowerPointApp.Visible = True
PowerPointApp.Activate
Application.CutCopyMode = False
End Sub
В написанном мной подвиде () это копирование диаграммы из листа Excel в новый ppt. Все графики скопированы, но они, похоже, накладываются друг на друга. В то же время можно дать пользователю возможность либо копировать графики в новый ppt, либо ppt, сохраненный на диске компьютера.