G
gleepwurptheeyebiter
Hello!
So I'm having this problem. The problem is probably that I am not that
strong with VBA, but here goes:
I want to automate creation of charts and put them into a powerpoint
deck. There are 100 charts that need to be created on a monthly
basis. I am working on an engine to do this.
I am stuck trying to copy a chart from excel and paste it into a
specific place on a specific powerpoint slide.
The pasting is going OK, but what I really want to do is to paste it
into a specific spot on the slide so that I can maintain the format of
the slide if I apply a style template to the presentation.
Here is an example:
http://www.qaready.com/ppt/example.ppt
There are 2 slides. The first one is wrong because the chart I pasted
into it is floating. The second one is right because I selected the
graph shape object, then pasted the chart into it. The question is,
how do I do this from VBA (in Excel).
See below: 'HERE IS WHERE THINGS GO AWRY
Here is my code that does not work:
Sub CopyChartToPres(PPApp As PowerPoint.Application, PPPres As
PowerPoint.Presentation, PPSlide As PowerPoint.Slide, EXChart As
Chart)
' Uses Early Binding to the PowerPoint Object Model
' Set a VBE reference to Microsoft PowerPoint Object Library
' Make sure a chart is selected
If ActiveChart Is Nothing Then
MsgBox "Please select a chart and try again.", vbExclamation, _
"No Chart Selected"
Else
' Reference existing instance of PowerPoint
' Set PPApp = GetObject(, "Powerpoint.Application") commented
' Reference active presentation
' Copy chart as a picture
EXChart.CopyPicture Appearance:=xlScreen, Size:=xlScreen, _
Format:=xlPicture
' Set PPPres = PPApp.ActivePresentation
PPPres.Application.Activate
PPApp.ActiveWindow.ViewType = ppViewSlide
' Paste chart
'PPSlide.Shapes.Paste.Select
PPSlide.Select
PPSlide.Shapes.Paste
' Clean up
Set PPSlide = Nothing
Set PPPres = Nothing
Set PPApp = Nothing
End If
End Sub
Thenks in advance,
Gleep
So I'm having this problem. The problem is probably that I am not that
strong with VBA, but here goes:
I want to automate creation of charts and put them into a powerpoint
deck. There are 100 charts that need to be created on a monthly
basis. I am working on an engine to do this.
I am stuck trying to copy a chart from excel and paste it into a
specific place on a specific powerpoint slide.
The pasting is going OK, but what I really want to do is to paste it
into a specific spot on the slide so that I can maintain the format of
the slide if I apply a style template to the presentation.
Here is an example:
http://www.qaready.com/ppt/example.ppt
There are 2 slides. The first one is wrong because the chart I pasted
into it is floating. The second one is right because I selected the
graph shape object, then pasted the chart into it. The question is,
how do I do this from VBA (in Excel).
See below: 'HERE IS WHERE THINGS GO AWRY
Here is my code that does not work:
Sub CopyChartToPres(PPApp As PowerPoint.Application, PPPres As
PowerPoint.Presentation, PPSlide As PowerPoint.Slide, EXChart As
Chart)
' Uses Early Binding to the PowerPoint Object Model
' Set a VBE reference to Microsoft PowerPoint Object Library
' Make sure a chart is selected
If ActiveChart Is Nothing Then
MsgBox "Please select a chart and try again.", vbExclamation, _
"No Chart Selected"
Else
' Reference existing instance of PowerPoint
' Set PPApp = GetObject(, "Powerpoint.Application") commented
' Reference active presentation
' Copy chart as a picture
EXChart.CopyPicture Appearance:=xlScreen, Size:=xlScreen, _
Format:=xlPicture
' Set PPPres = PPApp.ActivePresentation
PPPres.Application.Activate
PPApp.ActiveWindow.ViewType = ppViewSlide
' Paste chart
'PPSlide.Shapes.Paste.Select
PPSlide.Select
PPSlide.Shapes.Paste
' Clean up
Set PPSlide = Nothing
Set PPPres = Nothing
Set PPApp = Nothing
End If
End Sub
Thenks in advance,
Gleep