Question

J'essaie de créer par programme une PowerPoint à partir de graphiques dans Access. Idéalement, lorsque les graphiques passent dans PowerPoint, ils deviennent des images statiques et non des graphiques liés aux données d'accès.

J'ai essayé des procédures telles que:

 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

Et je reçois un message d'erreur du type: La méthode de collage a échoué.

Existe-t-il une meilleure approche? Et peut-il être forcé de devenir une image statique?

Merci.

Était-ce utile?

La solution

Ok, j'ai trouvé un moyen de le faire. Je suis toujours intéressé si quelqu'un a un style plus élégant, mais pour tous ceux qui ont un problème similaire:

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

Autres conseils

Oui, c’est exactement la technique que j’utilise - et j’ai passé des jours à chercher des solutions sur le Web. Ce n’est pas très élégant, mais cela fonctionne et le plus intéressant est que vous obtenez un objet MS Graph dans Powerpoint afin que les utilisateurs puissent facilement appliquer leurs propres styles, modèles, etc.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top