Hi all.
I have an Excel workbook that contains 4 charts, which I am working on getting into a powerpoint. I have this code in my module currently:
This just creates a slide for each chart and places an image of the chart on its respective slide.
I need to do two things:
First, the images of the charts are a bit big, and I need to figure out how to resize them so they fit a bit better on my sheet.
Second, I would like to create a powerpoint template and use this macro to place the images into certain areas within my template. I have NO idea how to do this. I would love to experiment with it, but I can't even figure out how to create a new presentation using a predefined template.
Can anyone give me some helkp on these problems?
Any help is greatly appreciated.
Thanks!
Hank
I have an Excel workbook that contains 4 charts, which I am working on getting into a powerpoint. I have this code in my module currently:
Code:
Sub CreatePowerPoint()
'Add a reference to the Microsoft PowerPoint Library by:
'1. Go to Tools in the VBA menu
'2. Click on Reference
'3. Scroll down to Microsoft PowerPoint X.0 Object Library, check the box, and press Okay
'First we declare the variables we will be using
Dim newPowerPoint As PowerPoint.Application
Dim activeSlide As PowerPoint.Slide
Dim cht As Excel.ChartObject
'Look for existing instance
On Error Resume Next
Set newPowerPoint = GetObject(, "PowerPoint.Application")
On Error GoTo 0
'Let's create a new PowerPoint
If newPowerPoint Is Nothing Then
Set newPowerPoint = New PowerPoint.Application
End If
'Make a presentation in PowerPoint
If newPowerPoint.Presentations.Count = 0 Then
newPowerPoint.Presentations.Add
End If
'Show the PowerPoint
newPowerPoint.Visible = True
'Loop through each chart in the Excel worksheet and paste them into the PowerPoint
For Each cht In ActiveSheet.ChartObjects
'Add a new slide where we will paste the chart
newPowerPoint.ActivePresentation.Slides.Add newPowerPoint.ActivePresentation.Slides.Count + 1, ppLayoutText
newPowerPoint.ActiveWindow.View.GotoSlide newPowerPoint.ActivePresentation.Slides.Count
Set activeSlide = newPowerPoint.ActivePresentation.Slides(newPowerPoint.ActivePresentation.Slides.Count)
'Copy the chart and paste it into the PowerPoint as a Metafile Picture
cht.Select
ActiveChart.ChartArea.Copy
activeSlide.Shapes.PasteSpecial(DataType:=ppPasteMetafilePicture).Select
'Adjust the positioning of the Chart on Powerpoint Slide
newPowerPoint.ActiveWindow.Selection.ShapeRange.Left = 15
newPowerPoint.ActiveWindow.Selection.ShapeRange.Top = 125
activeSlide.Shapes(2).Width = 200
activeSlide.Shapes(2).Left = 505
Next
AppActivate ("Microsoft PowerPoint")
Set activeSlide = Nothing
Set newPowerPoint = Nothing
End Sub
This just creates a slide for each chart and places an image of the chart on its respective slide.
I need to do two things:
First, the images of the charts are a bit big, and I need to figure out how to resize them so they fit a bit better on my sheet.
Second, I would like to create a powerpoint template and use this macro to place the images into certain areas within my template. I have NO idea how to do this. I would love to experiment with it, but I can't even figure out how to create a new presentation using a predefined template.
Can anyone give me some helkp on these problems?
Any help is greatly appreciated.
Thanks!
Hank