View Single Post
  #6   Report Post  
Posted to microsoft.public.excel.charting
mustang25
 
Posts: n/a
Default Multiple Excel Charts to PowerPoint

Jon,

This is working brilliantly. I'd like to throw one more challenge at you if
you don't mind. It follows below. Here is the code I'm using for the macro
(you'll notice that I removed the line/command that copies the chart as a
picture. This is intentional.):

Sub ChartsToPresentation()
' Set a VBE reference to Microsoft PowerPoint Object Library

Dim PPApp As PowerPoint.Application
Dim PPPres As PowerPoint.Presentation
Dim PPSlide As PowerPoint.Slide
Dim PresentationFileName As Variant
Dim SlideCount As Long
Dim iCht As Integer

' Reference existing instance of PowerPoint
Set PPApp = GetObject(, "Powerpoint.Application")
' Reference active presentation
Set PPPres = PPApp.ActivePresentation
PPApp.ActiveWindow.ViewType = ppViewSlide

For iCht = 1 To ActiveSheet.ChartObjects.Count
' copy chart as a picture
ActiveSheet.ChartObjects(iCht).Copy

' Add a new slide and paste in the chart
SlideCount = PPPres.Slides.Count
Set PPSlide = PPPres.Slides.Add(SlideCount + 1, ppLayoutBlank)
PPApp.ActiveWindow.View.GotoSlide PPSlide.SlideIndex
With PPSlide
' paste and select the chart picture
.Shapes.Paste.Select
' align the chart
PPApp.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True
PPApp.ActiveWindow.Selection.ShapeRange.Align msoAlignMiddles, True
End With

Next

' Clean up
Set PPSlide = Nothing
Set PPPres = Nothing
Set PPApp = Nothing

End Sub

Is there a way to output the charts to PowerPoint with the following
parameters:

Height 5.66 inches
Width 9.66 inches
Horizontal Position 0 inches from top left corner
Vertical Position 1 inch from top left corner

Many thanks in advance!


"Jon Peltier" wrote:

I suspect you didn't set the reference to PowerPoint. It's described higher
on the page than the specific code you must have copied. Just under the big
title "Activating Other Applications with Excel VBA".

- Jon
-------
Jon Peltier, Microsoft Excel MVP
Peltier Technical Services
Tutorials and Custom Solutions
http://PeltierTech.com/
_______

"mustang25" wrote in message
...
It amazes me to see the amount of knowledge stored on these forums. I'm
seriously impressed that there is an answer to my question. Thank you
Jon.

Unfortunately, my VB skills are at about the same level as my 2 year old
son's. In other words, I don't know the first thing about it. I figured
out
how to paste the code into the VBE, but when I try to run the macro, I get
an
error saying "User Type not Defined." I know this has to be a very basic
issue, but like I said, I don't know the first thing about VB. Am I
better
off just copying and pasting my charts one at a time?

"Jon Peltier" wrote:

Partway through this article you'll find programmatic approaches to that
very problem:

http://peltiertech.com/Excel/XL_PPT.html

- Jon
-------
Jon Peltier, Microsoft Excel MVP
Peltier Technical Services
Tutorials and Custom Solutions
http://PeltierTech.com/
_______

"mustang25" wrote in message
...
OK, I think I have a question that will stump even the best of you! :)

I have several worksheets that contain multiple charts. I want to copy
the
charts from Excel to PowerPoint with one chart to a slide. I can do so
one
at a time by copying and pasting them. The drawback is that it takes
lots
of
time to do this because I'm working with 250+ charts. My question is
if
there is a way to quickly export the charts to PowerPoint so that each
slide
contains a different chart.