I've been working on a problem where I am wanting to automate the process of linking spreadsheets to Powerpoint slides. I have the following code which copies charts over to Powerpoint and am wanting to alter this so that it works for linking a selected range. Can anbody please help me?
________________________________________________
Sub test()
' Excel Application objects declaration
Dim objSheet As Worksheet
Dim objChartObject As ChartObject
Dim objChart As Chart
'Powerpoint Application objects declaration
Dim pptApp As Object 'Powerpoint.Application
Dim pptPre As Object 'Powerpoint.Presentation
Dim pptSld As Object 'Powerpoint.Slide
'Create a new Powerpoint session
Set pptApp = CreateObject("Powerpoint Application")
'Create a new presentation
Set pptPre = pptApp.Presentations.Add
For Each objSheet In ActiveWorkbook.Worksheets
If objSheet.ChartObjects.Count > 0 Then
For Each objChartObject In objSheet.ChartObjects
Set objChart = objChartObject.Chart
Set pptSld = pptPre.Slides.Add(pptPre.Slides.Count + 1, 12)
With objChart
objChart.CopyPicture xlScreen, xlBitmap, xlScreen
pptSld.Shapes.Paste
End With
Next objChartObject
End If
Next objSheet
pptApp.Visible = True
pptApp.Activate
End Sub
________________________________________________
Sub test()
' Excel Application objects declaration
Dim objSheet As Worksheet
Dim objChartObject As ChartObject
Dim objChart As Chart
'Powerpoint Application objects declaration
Dim pptApp As Object 'Powerpoint.Application
Dim pptPre As Object 'Powerpoint.Presentation
Dim pptSld As Object 'Powerpoint.Slide
'Create a new Powerpoint session
Set pptApp = CreateObject("Powerpoint Application")
'Create a new presentation
Set pptPre = pptApp.Presentations.Add
For Each objSheet In ActiveWorkbook.Worksheets
If objSheet.ChartObjects.Count > 0 Then
For Each objChartObject In objSheet.ChartObjects
Set objChart = objChartObject.Chart
Set pptSld = pptPre.Slides.Add(pptPre.Slides.Count + 1, 12)
With objChart
objChart.CopyPicture xlScreen, xlBitmap, xlScreen
pptSld.Shapes.Paste
End With
Next objChartObject
End If
Next objSheet
pptApp.Visible = True
pptApp.Activate
End Sub