Einfügen eines Diagramms aus Excel in einen bestimmten Platzhalter in einem bestimmten Layout. Powepoint 2010

Ich muss mehrere Diagramme von Excel nach Powerpoint einfügen. Ich habe einen ausgezeichneten VBA-Code gefunden (hauptsächlich auf Jon Peltiers Website). Jetzt hat meine PowerPoint-Vorlage eine Reihe von Layouts (z. B. mit 1 Diagramm, das die meisten Folien belegt, oder 1 Diagramm und einem Textfeld in einer Folie usw. usw.).

Ich möchte, dass das Diagramm Teil des Folienlayouts wird. Wenn ich die Folie neu formatiere, z. Ich ändere das Layout wie im obigen Beispiel - das Diagramm verschiebt sich entsprechend. Derzeit kann ich die Stelle einfügen, an der sich der Platzhalter befindet, mit der richtigen Größe und allem, aber er befindet sich nicht im Platzhalter, sondern auf dem Platzhalter (und bleibt daher dort, wenn ich das Layout ändere).

Im Idealfall möchte ich in der Lage sein, das Layout (von 15) und den Platzhalter im ausgewählten Layout auszuwählen (normalerweise habe ich einen Titel, eine Fußzeile und dann 1 bis 4 Platzhalter für Diagramme, Bilder, Text oder alles über).

Ich bin kein VBA-Programmierer, ich benutze nur ein bisschen Logik und Grab-Codes, die freundlicherweise im Internet geteilt werden. Ich habe keine Ahnung, wie man das richtige Layout identifiziert (sie haben Namen, aber ist das die Variable?) Oder den richtigen Platzhalter innerhalb des Layouts (hier weiß ich nicht einmal, wie man sie identifiziert).

Jede Hilfe sehr geschätzt. DF

Im Folgenden der Code, den ich hier und da kopiert habe (hauptsächlich Jon Peltiers Seite).

<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>

Antworten auf die Frage(1)

Ihre Antwort auf die Frage