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>