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>

Respuestas a la pregunta(1)

Su respuesta a la pregunta