Как автоматизировать диаграмму для копирования непосредственно в PPT из Excel с использованием VBA - PullRequest
0 голосов
/ 18 марта 2020
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, сохраненный на диске компьютера.

...