آخر تحديث: يونيو 2020
ينطبق على: Office 2019 وما فوق. نوافذ فقط.
هذا سؤال من القارئ:
كجزء من عرض تقريري الفصلي للإدارة ، غالبًا ما أحتاج إلى نسخ عدة شرائح معلومات عامة من عروض تقديمية أخرى. ليست مشكلة كبيرة ، ولكنها ستكون مدخرًا كبيرًا أن تكون قادرًا على أتمتة هذا التمرين. أي VBA ماكرو يساعد على تحقيق ذلك هو موضع تقدير!
كما ذكرت للتو ، يمكنك أتمتة نسخ الشرائح ولصقها في PowerPoint باستخدام Visual Basic for Applications. إذا كنت بحاجة إلى إنشاء العديد من العروض التقديمية كل شهر ، فقد تصبح أتمتة نسخ / استيراد الشرائح هذه توفيرًا كبيرًا للوقت!
PowerPoint VBA لإضافة الشرائح
لنبدأ في هذا التمرين البسيط.
أولاً ، تأكد من تمكين علامة تبويب التطوير الخاصة بك ومرئية. إليك كيفية القيام بذلك .
سأفترض أنك قمت بالفعل بإنشاء عرض تقديمي ممكّن لماكرو (نوع الملف هو .pptm) ، والذي قمت بوضعه في نفس الدليل من العرض التقديمي المصدر (والذي سأشير إليه باسم source.pptm). فيما يلي كيفية إنشاء عرض PowerPoint تقديمي باستخدام VBA .
أولاً ، دعنا نأخذ نسخة احتياطية من هذا العرض التقديمي (نسخة بسيطة وحفظ).
ثم دعنا نمضي قدمًا ونقوم بإدراج الماكرو التالي في وحدة VBA النمطية الجديدة في العرض التقديمي الوجهة. يمكن العثور على جميع التفاصيل حول كيفية القيام بذلك في برنامج PowerPoint VBA التعليمي الخاص بنا .
إليك رمز VBA الذي ستحتاجه لنسخ الشرائح ولصقها تلقائيًا.
زوجان من الافتراضات التي قدمتها:
- تم تسمية العرض التقديمي المصدر الخاص بك source.pptm
- ستقوم بلصق الشرائح 2-4 من العرض التقديمي المصدر
- ستضع الشرائح المنسوخة بدءًا من الشريحة 5.
Sub InsertFromOtherPres()
' This short VBA macro copies slides from one presentation and inserts them into another
ActivePresentation.Slides.InsertFromFile FileName:="source.pptm", Index:=1, SlideStart:=2,
SlideEnd:=4
End Sub
من الواضح ، لا تتردد في تغيير فهرسة رقم الشريحة في الكود حتى يتناسب مع متطلباتك.
يمكنك جعلها تتكرر خلال عدة عروض تقديمية وإدراج شرائح محددة من كل منها في تقرير الإدارة الخاص بك.
PowerPoint VBA لتكرار الشرائح
بدلاً من نسخ الشرائح إلى عرض تقديمي آخر ، قد ترغب في استنساخ شريحة واحدة أو أكثر في عرضك التقديمي:
Sub CopySlides()
' Short snippet to duplicate the third slide in a presentation, change the index/es accrodingly
ActivePresentation.Slides(3).Duplicate
End Sub
كان هذان مجرد مثالين بسيطين لأتمتة PowerPoint. القراء الذين يبحثون عن أسئلة محددة ، لا تتردد في إرسال استفسار عبر صفحة الاتصال.
أتمنى أن يساعد 🙂
الحفاظ على التنسيق عند نسخ الشرائح
كانت المشكلة في المثال السابق هي أنه لم يتم نسخ تنسيق سمة العروض التقديمية الأصلية. افترض أن الورقتين لهما تنسيق مختلف، وهذا ما كان سيحدث:
مثال 1
| |
Sub main()
Dim objPresentation As Presentation
Dim i As Integer
'open the target presentation
Set objPresentation = Presentations.Open("C:\2.pptx")
For i = 1 To objPresentation.Slides.Count
objPresentation.Slides.Item(i).Copy
Presentations.Item(1).Slides.Paste
Next i
objPresentation.Close
End Sub
|

هذا هو العرض التقديمي مع الشريحة التي نريد نسخها:
النتيجة:
للتغلب على هذه المشكلة، يمكنك استخدام الكود أدناه:
![الشرائح المراد نسخها]()
![نتيجة]()
| |
Sub Example2()
Dim objPresentation As Presentation
Dim i As Integer
'open the target presentation
Set objPresentation = Presentations.Open("C:\2.pptx")
For i = 1 To objPresentation.Slides.Count
objPresentation.Slides.Item(i).Copy
Presentations.Item(1).Slides.Paste
Presentations.Item(1).Slides.Item(Presentations.Item(1).Slides.Count).Design = _
objPresentation.Slides.Item(i).Design
Next i
objPresentation.Close
End Sub
|
بالإضافة إلى نسخ الشريحة، يقوم الكود أعلاه بنسخ التصميم. إذا أردت القيام بذلك يدويًا، فستقوم بنسخ شريط التمرير إلى العرض التقديمي الجديد. لا يمكنك نسخ مدير الشرائح باستخدام VBA ولكن بدلاً من ذلك يمكنك تعيين خاصية التصميم للشرائح.