Wklej wykres z programu Excel do określonego symbolu zastępczego w określonym układzie. Powepoint 2010
Muszę wkleić wiele wykresów z Excela do Powerpoint. Znalazłem doskonały kod VBA (głównie na stronie Jona Peltiera). Teraz mój szablon Powerpoint ma wiele układów (np. 1 wykres zajmuje większość slajdów lub 1 wykres i jedno pole tekstowe na slajdzie itp.).
Chcę, aby wykres stał się częścią układu slajdu, aby po sformatowaniu slajdu - np. Zmieniam układ, jak w powyższym przykładzie - wykres przesunie się odpowiednio. Obecnie jestem w stanie wkleić w miejscu, w którym znajduje się symbol zastępczy, z odpowiednim rozmiarem i wszystkim, ale nie jest to IN w symbolu zastępczym, jest w symbolu zastępczym (i dlatego pozostaje tam, jeśli zmieniam układ).
Idealnie chciałbym móc wybrać układ (od 15) i wybrać symbol zastępczy w wybranym układzie (zazwyczaj mam tytuł, stopkę, a następnie od 1 do 4 symboli zastępczych dla wykresów, obrazów, tekstu lub wszystkich elementów powyżej).
Nie jestem programistą VBA, używam tylko trochę logiki i kodów chwytania, które są dzielone w sieci. Nie mam pojęcia, jak zidentyfikować właściwy układ (mają nazwy, ale czy jest to zmienna?) Ani właściwy symbol zastępczy w układzie (tutaj nawet nie wiem, jak je zidentyfikować).
Każda pomoc bardzo doceniana. DF
Poniżej kod, który skopiowałem tu i tam (głównie strona Jona Peltiera).
<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>