سؤال

واني اسعى الى خلق برمجيا PowerPoint من الرسوم البيانية في Access. من الناحية المثالية، عندما تتحرك الرسوم البيانية لأكثر من باور بوينت أنها سوف تصبح الصور الثابتة وليس الرسوم البيانية لا تزال مرتبطة الوصول إلى البيانات.

ولقد حاولت إجراءات مثل:

 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

وأحصل على رسالة خطأ مثل: فشل الأسلوب لصق

.

هل هناك طريقة أفضل؟ ويمكن أن يضطر لتصبح صورة ثابتة؟

وشكرا لكم.

هل كانت مفيدة؟

المحلول

وطيب، ولقد وجدت طريقة للقيام بذلك. أنا لا تزال مهتمة إذا كان أي شخص لديه طريقة أكثر أناقة، ولكن لشخص آخر التعامل مع مشكلة مماثلة:

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

نصائح أخرى

نعم، هذا هو بالضبط تقنية يمكنني استخدام - وقضيت أيام البحث في الإنترنت عن حلول. ليست أنيقة جدا ولكنه يعمل والشيء الجميل هو أن تحصل على كائن MS Graph في باور بوينت بحيث يمكن للمستخدمين بسهولة تطبيق التصميم الخاصة بهم، قوالب الخ

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top