Pregunta

A continuación se muestra un procedimiento que utilizo para extraer gráficos en un ppt de las hojas de cálculo de Excel. Sin embargo, una cosa que no puedo entender es cómo insertar la imagen en el " objeto " en lugar de pegarlo en la pantalla. (es decir, si hice un ppLayoutFourObjects y envié cuatro gráficos a esta diapositiva, antes de agregar otro, necesito saber cómo pegar el gráfico en cada rectángulo designado que se muestra en la selección de 4 Objetos). Sé que el primero parece ser siempre el rectángulo cinco, no puedo obtener el código correcto. Por favor ayuda.  Esto es todo Office 2003.

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

Gracias por cualquier ayuda. ¡VBA para PowerPoint es mi más débil, pero realmente necesito recogerlo para trabajar! ¡Gracias chicos!

¿Fue útil?

Solución

AFAIK no puede pegar un gráfico " en un objeto " en PowerPoint, incluso a través de la interfaz de usuario. En Word, puede pegar en un cuadro de texto o en una celda de la tabla, pero no en PowerPoint.

Lo que debe hacer en su lugar es colocar los 4 gráficos pegados para que tengan el tamaño correcto & amp; posición, y eso es bastante fácil de hacer ...

Set oSlide = ActivePresentation.Slides(lCurrSlide)
Set oShape = oSlide.Shapes.Paste
oShape.Top = 10
oShape.Left = 10
oShape.Width = 100
oShape.Height = 100
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top