Cole um gráfico do Excel em um espaço reservado específico em um layout específico. Powepoint 2010
Eu preciso colar vários gráficos do excel para powerpoint. Eu encontrei um excelente código VBA (principalmente no site de Jon Peltier). Agora, meu modelo de powerpoint tem vários layouts (por exemplo, com um gráfico ocupando a maioria dos slides ou um gráfico e uma caixa de texto em um slide, etc etc).
O que eu quero é que o gráfico se torne parte do layout dos slides para que eu reformate o slide - por exemplo, Eu mudo o layout como no exemplo dado acima - o gráfico se moverá de acordo. Atualmente, posso colar no local onde está o espaço reservado, com o tamanho certo e tudo, mas não está no espaço reservado, está no espaço reservado (e, portanto, fica lá se eu alterar o layout).
Idealmente, eu gostaria de poder escolher o layout (a partir de 15) e escolher o espaço reservado no layout selecionado (normalmente eu tenho um título, um rodapé e, em seguida, de 1 a 4 espaços reservados para gráficos, imagens, texto ou todos os acima).
Eu não sou um programador de VBA, apenas uso um pouco de lógica e pegue códigos que são gentilmente compartilhados na rede. Eu não tenho idéia de como identificar o layout adequado (eles têm nomes, mas é a variável?), Nem o espaço reservado adequado dentro do layout (aqui eu nem sei como identificá-los).
Qualquer ajuda muito apreciada. DF
A seguir, o código que copiei aqui e ali (principalmente o site 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>