Criando um PowerPoint com gráficos a partir de acesso
-
22-07-2019 - |
Pergunta
Estou tentando criar programaticamente um PowerPoint a partir de gráficos no acesso. Idealmente, quando os gráficos se movem para o PowerPoint, eles se tornarão imagens estáticas e não os gráficos ainda vinculados aos dados de acesso.
Eu tentei procedimentos como:
Private Sub Command1_click()
Dim pwrpnt as Object
Dim Presentation as Object
set pwrpnt = CreateObject("Powerpoint.Application")
pwrpnt.Activate
Set Presentation = pwrpnt.Presentation.Open("C:\test.ppt")
Me.Graph1.SetFocus
Runcommand acCmdcopy
Presentation.Slides(1).Shapes.Paste
set pwrpnt = Nothing
set Presentation = Nothing
End Sub
E recebo uma mensagem de erro como: o método de pasta falhou.
Existe uma abordagem melhor? E pode ser forçado a se tornar uma imagem estática?
Obrigada.
Solução
Ok, eu encontrei uma maneira de fazer isso. Ainda estou interessado se alguém tiver uma maneira mais elegante, mas para qualquer outra pessoa que lide com um problema semelhante:
Private Sub Command1_click()
'Note: Sample only, in real code this should probably have something to save the
'PPT file and then close the powerpoint application, not to mention some error handling,
' and possibly some picture formatting, etc.
Dim pwrpnt as PowerPoint.Application
Dim Presntation as PowerPoint.Presentation
Me.Graph0.Action = acOLECopy
set pwrpnt = CreateObject("Powerpoint.Application")
pwrpnt.Activate
Set Presentation = pwrpnt.Presentations.Open("TemplateFile.ppt")
pwrpnt.ActiveWindow.ViewType = ppViewSlide
'This inserts it as a picture, just use .Paste to insert it as an actual chart.
pwrpnt.ActiveWindow.View.PasteSpecial ppPasteEnhancedMetafile
EndSub
Outras dicas
Sim, essa é exatamente a técnica que eu uso - e passei dias pesquisando soluções na Web. Não é muito elegante, mas funciona e o bom é que você obtém um objeto de gráfico MS no PowerPoint para que os usuários possam aplicar facilmente seu próprio estilo, modelos etc.