2009-06-19 7 views
1

Ниже приведена процедура, используемая для вытягивания диаграмм в таблицу ppt из Excel. Однако я не могу понять, как вставить изображение в «объект», а не просто вставить его на экран. (т. е. если я сделал ppLayoutFourObjects и отправил четыре диаграммы на этот слайд, перед добавлением другого, мне нужно знать, как вставлять диаграмму в каждый выделенный прямоугольник, показанный из 4-х объектов). Я знаю, что первый, кажется, всегда прямоугольник пять, я не могу получить код правильно. Пожалуйста помоги. Это все Office 2003.VBA для вставки диаграммы в слайд ppt

sub xls2ppt() 
'I use this to pull charts into ppt from excel 
Dim xlApp As Object 
Dim xlWrkBook As Object 
Dim lCurrSlide As Long 
Set xlApp = CreateObject("Excel.Application") 
' Open the Excel workbook 
Set xlWrkBook = xlApp.Workbooks.Open("X:\Users\Admin\Desktop\Budget Overview.xls") 
' Copy picture of the 1st chart object onto the clipboard 
xlWrkBook.Worksheets(2).ChartObjects(1).CopyPicture 
' Get the slide number 
lCurrSlide = ActiveWindow.Selection.SlideRange.SlideNumber 
' Paste the picture onto the PowerPoint slide. 
ActivePresentation.Slides(lCurrSlide).Shapes.Paste 
' Close the open workbook without saving changes 
xlWrkBook.Close (False) 
xlApp.Quit 
Set xlApp = Nothing 
Set xlWrkBook = Nothing 
End Sub 

Спасибо за любую помощь. VBA для PowerPoint - мой самый слабый, но мне действительно нужно забрать его для работы! Спасибо, парни!

+0

ли прямоугольники заполнители? Если это так, я считаю, что если вы выберете местозаполнитель перед пастой, диаграмма будет вставлена ​​в местозаполнитель. (Я все еще работаю над деталями этого для моего собственного проекта.) –

ответ

2

AFAIK вы не можете вставить диаграмму «в объект» в PowerPoint даже через интерфейс. В Word вы можете вставлять текстовое поле или в ячейку таблицы, но не в PowerPoint.

Что вам нужно сделать, вместо того, чтобы позиция в 4 наклеенные графики так, чтобы они правильный размер & позиции - и это достаточно легко сделать ...

Set oSlide = ActivePresentation.Slides(lCurrSlide) 
Set oShape = oSlide.Shapes.Paste 
oShape.Top = 10 
oShape.Left = 10 
oShape.Width = 100 
oShape.Height = 100 
+0

, который был очень хорош! благодаря! – Justin

Смежные вопросы