Я пытаюсь создать макрос excel, который копирует диаграммы, отображаемые на листе excel, и вставляет их (вставлять специальные) в PowerPoint. Проблема, с которой я сталкиваюсь, - как вставить каждый график на другом слайде? Я не знаю синтаксис вообще ..Вставить таблицу Excel в Powerpoint с помощью VBA
Это то, что я до сих пор (это работает, но это только пасты на первом листе):
Sub graphics3()
Sheets("Chart1").Select
ActiveSheet.ChartObjects("Chart1").Activate
ActiveChart.ChartArea.Copy
Sheets("Graphs").Select
range("A1").Select
ActiveSheet.Paste
With ActiveChart.Parent
.Height = 425 ' resize
.Width = 645 ' resize
.Top = 1 ' reposition
.Left = 1 ' reposition
End With
Dim PPT As Object
Set PPT = CreateObject("PowerPoint.Application")
PPT.Visible = True
PPT.Presentations.Open Filename:="locationwherepptxis"
Set PPApp = GetObject("Powerpoint.Application")
Set PPPres = PPApp.activepresentation
Set PPSlide = PPPres.slides _
(PPApp.ActiveWindow.Selection.SlideRange.SlideIndex)
' Copy chart as a picture
ActiveChart.CopyPicture Appearance:=xlScreen, Size:=xlScreen, _
Format:=xlPicture
' Paste chart
PPSlide.Shapes.Paste.Select
' Align pasted chart
PPApp.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True
PPApp.ActiveWindow.Selection.ShapeRange.Align msoAlignMiddles, True
+1 Но почему бы не раннее связывание? –
Thx Jean-Francois. Это справедливый вопрос - короткий ответ - личное предпочтение. Как правило, я опоздаю на связывание, если возможны несколько версий автоматизируемого объекта, и, поскольку я обнаружил, что пользователи в форумах Q & A могут бороться с настройками ссылок. В то время как я использовал раннее бинирование в моем Duplicate Master addin, поскольку он привязывается только к библиотеке сценариев файлов, он бреет 20-30% от времени исполнения и как часть дополнения автоматически устанавливается для пользователей. – brettdj