A
Abdul
By modifying the code available in this group now i can have each chart
sheet in seperate slides.
Is there a way that I can have this without activating powerpoint? when
i do this without activating I get only once slide..
Thanks
Sub Chart2PPT()
Dim PPApp As PowerPoint.Application
Dim PPPres As PowerPoint.Presentation
Dim PPSlide As PowerPoint.Slide
Dim PPShape As PowerPoint.Shape
Dim Fname As Variant
Dim CurTitle As Variant
Dim SlideCount As Long
Dim iCht As Chart
Set PPApp = CreateObject("Powerpoint.Application")
Set PPPres = PPApp.Presentations.Add
Application.ScreenUpdating = False
CurTitle = "XlChartToPPT"
Fname = ThisWorkbook.Path & Application.PathSeparator & CurTitle &
".ppt"
For Each iCht In ActiveWorkbook.Charts
iCht.CopyPicture xlScreen, xlPicture, xlScreen
SlideCount = PPPres.Slides.Count
Set PPSlide = PPPres.Slides.Add(SlideCount + 1, ppLayoutBlank)
PPApp.Visible = True
AppActivate PPApp.Name
With PPSlide
.Shapes.Paste
Set PPShape = .Shapes(.Shapes.Count)
PPShape.Left = 0#
PPShape.Top = 0#
End With
SlideCount = SlideCount + 1
Next iCht
With PPPres
.SaveAs Fname
.Close
End With
PPApp.Quit
Set PPApp = Nothing
Set PPPres = Nothing
End Sub
sheet in seperate slides.
Is there a way that I can have this without activating powerpoint? when
i do this without activating I get only once slide..
Thanks
Sub Chart2PPT()
Dim PPApp As PowerPoint.Application
Dim PPPres As PowerPoint.Presentation
Dim PPSlide As PowerPoint.Slide
Dim PPShape As PowerPoint.Shape
Dim Fname As Variant
Dim CurTitle As Variant
Dim SlideCount As Long
Dim iCht As Chart
Set PPApp = CreateObject("Powerpoint.Application")
Set PPPres = PPApp.Presentations.Add
Application.ScreenUpdating = False
CurTitle = "XlChartToPPT"
Fname = ThisWorkbook.Path & Application.PathSeparator & CurTitle &
".ppt"
For Each iCht In ActiveWorkbook.Charts
iCht.CopyPicture xlScreen, xlPicture, xlScreen
SlideCount = PPPres.Slides.Count
Set PPSlide = PPPres.Slides.Add(SlideCount + 1, ppLayoutBlank)
PPApp.Visible = True
AppActivate PPApp.Name
With PPSlide
.Shapes.Paste
Set PPShape = .Shapes(.Shapes.Count)
PPShape.Left = 0#
PPShape.Top = 0#
End With
SlideCount = SlideCount + 1
Next iCht
With PPPres
.SaveAs Fname
.Close
End With
PPApp.Quit
Set PPApp = Nothing
Set PPPres = Nothing
End Sub