Pegue un gráfico de Excel a un marcador de posición específico en un diseño específico. Powepoint 2010
Necesito pegar varios gráficos de Excel a Powerpoint. Encontré un excelente código VBA (principalmente en el sitio de Jon Peltier). Ahora mi plantilla de powerpoint tiene varios diseños (por ejemplo, con 1 gráfico que ocupa la mayoría de las diapositivas o 1 gráfico y un cuadro de texto en una diapositiva, etc., etc.).
Lo que quiero es que el gráfico se convierta en parte del diseño de la diapositiva, de modo que si formateo la diapositiva, por ejemplo. Cambio el diseño como se muestra en el ejemplo anterior: el gráfico se moverá en consecuencia. Actualmente puedo pegar en el lugar donde está el marcador de posición, con el tamaño correcto y todo, pero no está EN el marcador de posición, está EN el marcador de posición (y, por lo tanto, permanece allí si cambio el diseño).
Idealmente, me gustaría poder elegir el diseño (de 15) y elegir el marcador de posición en el diseño seleccionado (normalmente tengo un título, un pie de página y luego de 1 a 4 marcadores de posición para gráficos, imágenes, texto o todos los encima).
No soy un programador de VBA, solo uso un poco de lógica y capto códigos que se comparten amablemente en la red. No tengo idea de cómo identificar el diseño adecuado (tienen nombres, pero ¿es esa la variable?) Ni el marcador de posición adecuado dentro del diseño (aquí ni siquiera sé cómo identificarlos).
Cualquier ayuda muy apreciada. DF
A continuación, el código que copié aquí y allá (principalmente el sitio de Jon Peltier).
<code>Sub ChartToPresentation() ' 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 AddSlidesToEnd As Boolean AddSlidesToEnd = True ' Make sure a chart is selected If ActiveChart Is Nothing Then MsgBox "Please select a chart and try again.", vbExclamation, _ "No Chart Selected" Else ' Reference existing instance of PowerPoint Set PPApp = GetObject(, "Powerpoint.Application") ' Reference active presentation Set PPPres = PPApp.ActivePresentation PPApp.ActiveWindow.ViewType = ppViewSlide ' Reference active slide Set PPSlide = PPPres.Slides _ (PPApp.ActiveWindow.Selection.SlideRange.SlideIndex) ' Copy chart ActiveChart.ChartArea.Copy ' Paste chart PPSlide.Shapes.Paste.Select ' Position pasted chart ' This is the keypoint ' I want to replace this with the selection of appropriate layout ' and placeholder in that layout PPApp.ActiveWindow.Selection.ShapeRange.Left = 19.56 PPApp.ActiveWindow.Selection.ShapeRange.Top = 66.33 PPApp.ActiveWindow.Selection.ShapeRange.Width = 366.8 PPApp.ActiveWindow.Selection.ShapeRange.Height = 424.62 If PPApp.ActivePresentation.Slides.Count = 0 Then ' Other key point ' can I add a specific layout, for example one named Two Content Layout + takeout Set PPSlide = PPApp.ActivePresentation.Slides.Add(1, ppLayoutBlank) Else If AddSlidesToEnd Then 'Appends slides to end of presentation and makes last slide active PPApp.ActivePresentation.Slides.Add PPApp.ActivePresentation.Slides.Count + 1, ppLayoutBlank PPApp.ActiveWindow.View.GotoSlide PPApp.ActivePresentation.Slides.Count Set PPSlide = PPApp.ActivePresentation.Slides(PPApp.ActivePresentation.Slides.Count) Else 'Sets current slide to active slide Set PPSlide = PPApp.ActiveWindow.View.Slide End If End If 'Clean up Set PPSlide = Nothing Set PPPres = Nothing Set PPApp = Nothing End If End Sub </code>