كيفية إنشاء وإدراج الأشكال في PowerPoint باستخدام VBA؟

كيفية إنشاء وإدراج الأشكال في PowerPoint باستخدام VBA؟

قبل يومين ، كنت أرغب في أتمتة المهمة العادية لإنشاء بعض شرائح PowerPoint. عند أتمتة PowerPoint ، فأنت تعمل عادةً مع مجموعة الشرائح والأشكال. الشرائح تشرح نفسها بنفسها ، والأشكال هي إلى حد كبير كل شيء آخر بما في ذلك مربعات النص ، وأزرار الإجراءات ، وكائنات الوسائط ، والتسميات ، والصور ، ووسائل الشرح ، والمخططات الانسيابية ، وما إلى ذلك. على الرغم من أنني سأعرض التقنيات باستخدام PowerPoint ، إلا أن بعض القواعد التركيبية تنطبق بالفعل على Microsoft Word و Excel.

فقط للتلخيص ، قبل البدء في تطوير ماكرو VBA في PowerPoint ، تحتاج إلى تمكين علامة تبويب التطوير الخاصة بك .

أولاً ، لنبدأ بإنشاء عرض تقديمي تلقائيًا مع بعض الشرائح كما هو موضح في هذا البرنامج التعليمي: إنشاء عرض تقديمي في VBA .

الآن يمكننا البدء في العمل مع الأشكال. أولاً ، دعنا نمضي قدمًا ونفتح محرر VBA بالضغط على Alt + F11 ، إذا اتبعت البرنامج التعليمي السابق ، فيجب أن يكون لديك الوحدة 1 في قائمة الوحدات (كما هو موضح أدناه)

العمل مع الأشكال باستخدام VBA

إضافة مربع نص باستخدام فبا

سنبدأ بإضافة مربع نص عمودي إلى الشريحة الأولى في العرض التقديمي. أضف التعليمات البرمجية التالية إلى Module1 ، ثم امض قدمًا واضغط على زر حفظ (Ctrl + s) وقم بتشغيل الماكرو (اضغط على F5 أو اضغط على Run Sub / User Form).

Sub CreateTextBox()
Set MySlide = ActivePresentation.Slides(2)

    With MySlide.Shapes
        .AddTextbox(Orientation:=msoTextOrientationVertical, _
         Left:=90, Top:=200, Width:=80, _
         Height:=200).TextFrame.TextRange.Text _
        = ("This is my vertical text box")

End With

End Sub

لاحظ أنك قادر على تغيير حجم أبعاد مربع النص الخاص بك بسهولة تامة باستخدام VBA. في هذه الحالة سنقوم بتغيير حجم الشكل الأول في الشريحة الثانية ، فلا تتردد في التعديل حسب الحاجة.

Sub ResizeText()
Set MyShape = ActivePresentation.Slides(2).Shapes(1)

'Add your required dimensions as needed below
   With MyShape
         .Width = 200
         .Height = 35

End With
End Sub

تأثيرات النص مع VBA

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

Sub SetEffects()

Dim i As Integer

For i = 1 To ActivePresentation.Slides.Count
    ActivePresentation.Slides(i) _
    .Shapes.AddTextEffect msoTextEffect12, "Draft for Review", _
    "Segoe UI", 32, msoTrue, msoTrue, 650, 50
Next

End Sub

ها هي النتيجة ؛-):

كيفية إنشاء وإدراج الأشكال في PowerPoint باستخدام VBA؟

لاحظ أنه يمكنك أيضًا استخدام علامة مائية بسيطة لتحقيق هذه النتيجة المحددة.

وسائل شرح PowerPoint مع VBA

سيكون المثال التالي هو إضافة وسائل شرح إلى العرض التقديمي الخاص بك. في هذا المثال سنضيف وسيلة شرح للشريحة الثانية.

Sub CreateCallout()

ActivePresentation.Slides(2).Shapes.AddCallout(Type:=msoCalloutTwo, Left:=200, Top:=50, _  Width:=300, Height:=100).TextFrame.TextRange.Text = "My Callout"

End Sub

تحديد خصائص الشكل

لا يتم تعيين العديد من خصائص تنسيق الأشكال بواسطة الخصائص التي تنطبق مباشرة على  كائن الشكل  أو  ShapeRange  . بدلاً من ذلك، يتم تجميع سمات الشكل ذات الصلة ضمن كائنات ثانوية، مثل  كائن FileFormat  ، الذي يحتوي على كافة الخصائص المرتبطة بتعبئة الشكل، أو  كائن LinkFormat  ، الذي يحتوي على كافة الخصائص الفريدة لكائنات OLE المرتبطة. لتعيين خصائص الشكل، يجب عليك أولاً إرجاع الكائن الذي يمثل مجموعة سمات الشكل ذات الصلة ثم تعيين خصائص ذلك الكائن الذي تم إرجاعه. على سبيل المثال، يمكنك استخدام  خاصية التعبئة  لإرجاع  كائن FileFormat  ، ثم تقوم بتعيين  خاصية ForeColor  لكائن  fillFormat  لتعيين لون تعبئة المقدمة للشكل المحدد، كما هو موضح في المثال التالي.

VB

Set myDocument = ActivePresentation.Slides(1)
myDocument.Shapes(1).Fill.ForeColor.RGB = RGB(255, 0, 0)

تطبيق خاصية أو أسلوب على عدة أشكال في نفس الوقت

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

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

  • إذا كانت العملية تعمل على عدة أشكال محددة في واجهة المستخدم، فيمكنك إجراء نفس العملية في Visual Basic عن طريق إنشاء  مجموعة ShapeRange  التي تحتوي على الأشكال التي تريد العمل معها، وتطبيق الخصائص والأساليب المناسبة مباشرة على  مجموعة ShapeRange  .

  • إذا لم تنجح العملية على عدة أشكال محددة في واجهة المستخدم، فلا يزال بإمكانك تنفيذ العملية في Visual Basic عن طريق التكرار عبر مجموعة  الأشكال  أو عبر  مجموعة ShapeRange  التي تحتوي على الأشكال التي تريد العمل معها، وتطبيق الخصائص المناسبة وطرق  كائنات الشكل الفردية  في المجموعة.

تفشل العديد من الخصائص والأساليب التي تنطبق على   كائن  الشكل ومجموعة ShapeRange  إذا تم تطبيقها على أنواع معينة من الأشكال. على سبيل المثال،  تفشل الخاصية TextFrame  إذا تم تطبيقها على شكل لا يمكن أن يحتوي على نص. إذا لم تكن متأكدًا من أن كل شكل في  مجموعة ShapeRange  يمكن أن يحتوي على خاصية أو أسلوب معين مطبق عليه، فلا تقم بتطبيق الخاصية أو الأسلوب على  مجموعة ShapeRange  . إذا كنت تريد تطبيق إحدى هذه الخصائص أو الأساليب على مجموعة من الأشكال، فيجب عليك التكرار خلال المجموعة واختبار كل شكل فردي للتأكد من أنه نوع مناسب من الأشكال قبل تطبيق الخاصية أو الأسلوب عليه.

تطبيق خاصية أو أسلوب على مجموعة ShapeRange

إذا كان بإمكانك تنفيذ عملية على أشكال محددة متعددة في واجهة المستخدم في نفس الوقت، فيمكنك إجراء المعادل البرمجي عن طريق إنشاء  مجموعة ShapeRange  ثم تطبيق الخصائص أو الأساليب المناسبة عليها. ينشئ المثال التالي نطاق شكل يحتوي على الأشكال التلقائية المسماة "Big Star" و"Little Star" ويطبق تعبئة متدرجة عليها ويطبق تعبئة متدرجة عليها.myDocument

VB

Set myDocument = ActivePresentation.Slides(1) 
Set myRange = myDocument.Shapes _ 
    .Range(Array("Big Star", "Little Star")) 
myRange.Fill.PresetGradient msoGradientHorizontal, _ 
    1, msoGradientBrass

فيما يلي إرشادات عامة حول كيفية تصرف الخصائص والأساليب عند تطبيقها على  مجموعة ShapeRange  .

  • إن تطبيق أسلوب على المجموعة يعادل تطبيق الأسلوب على كل  كائن شكل فردي  في تلك المجموعة.

  • إن تعيين قيمة خاصية المجموعة يعادل تعيين قيمة خاصية كل شكل فردي في هذا النطاق.

  • خاصية المجموعة التي ترجع ثابتًا تقوم بإرجاع قيمة الخاصية لشكل فردي في المجموعة إذا كانت كافة الأشكال في المجموعة لها نفس القيمة لتلك الخاصية. إذا لم تكن كافة الأشكال الموجودة في المجموعة لها نفس قيمة الخاصية، فسيتم إرجاع الثابت "المختلط".

  • إحدى خصائص المجموعة التي تُرجع نوع بيانات بسيطًا (مثل  Long أو  Single أو  String ) تُرجع قيمة الخاصية لشكل فردي إذا كانت جميع الأشكال في المجموعة لها نفس القيمة لتلك الخاصية.

  • يمكن إرجاع قيمة بعض الخصائص أو تعيينها فقط في حالة وجود شكل واحد بالضبط في المجموعة. إذا كان هناك أكثر من شكل واحد في المجموعة، يحدث خطأ في وقت التشغيل. هذا هو الحال عمومًا بالنسبة لإرجاع الخصائص أو تعيينها عندما يكون الإجراء المكافئ في واجهة المستخدم ممكنًا فقط باستخدام شكل واحد (إجراءات مثل تحرير النص في شكل أو تحرير نقاط الشكل الحر).

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

التكرار عبر مجموعة الأشكال أو ShapeRange

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

VB

Set myDocument = ActivePresentation.Slides(1) 
For Each sh In myDocument.Shapes 
    If sh.Type = msoAutoShape Then 
        sh.TextFrame.TextRange.InsertAfter " (version 1)" 
    End If 
Next

ينشئ المثال التالي  مجموعة ShapeRange  التي تحتوي على كافة الأشكال المحددة حاليًا في النافذة النشطة ويقوم بتعيين النص في كل شكل في المجموعة التي يمكن أن تحتوي على نص.

VB

For Each sh in ActiveWindow.Selection.ShapeRange
    If sh.HasTextFrame Then
        sh.TextFrame.TextRange = "Initially selected"
    End If
Next

محاذاة الأشكال وتوزيعها وتجميعها في نطاق الشكل

استخدم  أساليب المحاذاة  والتوزيع  لوضع مجموعة من  الأشكال بالنسبة لبعضها البعض أو بالنسبة للمستند الذي يحتوي عليها. استخدم  أسلوب المجموعة  أو  أسلوب إعادة التجميع  لتكوين شكل مجمع واحد من مجموعة من الأشكال.


الزنجبيل 2.7.53.0

الزنجبيل 2.7.53.0

Ginger هو مدقق إملائي ونحوي مجاني.

كتل

كتل

Blocks هي لعبة فكرية لطلاب الصف الثالث الابتدائي لممارسة مهارات الكشف والعين الخاصة بهم ويتم تضمينها من قبل المعلمين في برنامج دعم تدريس تكنولوجيا المعلومات.

بريزي 6.26

بريزي 6.26

Prezi هو تطبيق مجاني يسمح لك بإنشاء عروض تقديمية رقمية، سواء عبر الإنترنت أو دون الاتصال بالإنترنت.

Mathway

Mathway

Mathway هو تطبيق مفيد للغاية يمكنه مساعدتك في حل جميع المسائل الرياضية التي تتطلب أداة أكثر تعقيدا من الآلة الحاسبة المدمجة في جهازك.

أدوبي مقدم

أدوبي مقدم

Adobe Presenter هو برنامج للتعليم الإلكتروني تم إصداره بواسطة Adobe Systems ومتوفر على نظام Microsoft Windows الأساسي كمكون إضافي لـ Microsoft PowerPoint.

الطوقان 2.3.0

الطوقان 2.3.0

الطوقان هي منصة التكنولوجيا التعليمية. فهو يسمح لك بتعلم لغة جديدة أثناء تصفح مواقع الويب اليومية الشائعة.

إنيت فيت 24.2

إنيت فيت 24.2

eNetViet هو تطبيق يساعد على ربط أولياء الأمور بالمدرسة التي يدرس فيها أطفالهم حتى يتمكنوا من فهم الوضع التعليمي الحالي لأطفالهم بوضوح.

دولينجو

دولينجو

Duolingo - تعلم اللغات مجانًا، أو Duolingo ببساطة، هو برنامج تعليمي يسمح لك بتعلم وممارسة العديد من اللغات المختلفة.

الكتابة السريعة

الكتابة السريعة

RapidTyping هي أداة تدريب مريحة وسهلة الاستخدام على لوحة المفاتيح ستساعدك على تحسين سرعة الكتابة وتقليل الأخطاء الإملائية. من خلال الدروس المنظمة للعديد من المستويات المختلفة، ستعلمك RapidTyping كيفية الكتابة أو تحسين المهارات الموجودة.

ماث تايب 7.4.10.53

ماث تايب 7.4.10.53

MathType هو برنامج معادلة تفاعلي من مطور Design Science (Dessci)، والذي يسمح لك بإنشاء وتعليق تدوين رياضي لمعالجة النصوص والعروض التقديمية والتعليم الإلكتروني وما إلى ذلك. يستخدم هذا المحرر أيضًا لإنشاء مستندات TeX وLaTeX وMathML.