JWDStructure

دروس VBA AutoCAD 

برمجة أوتوكاد - الدرس الثاني - أمور أساسية

النقاط الأساسية

  • مقدمة
  • إضافة وحدة نمطية (Module)
  • إضافة ماكرو
  • إضافة نموذج (Form)
  • إضافة أدوات إلى النموذج
  • استخدام الأحداث
  • إضافة ماكرو آخر لإظهار النموذج
  • حفظ المشروع

مقدمة

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

إضافة وحدة نمطية (Module)

يمكن إضافة وحدة نمطية التي تكتب فيها الماكروات بعدة طرق، وسأعتمد في هذه الدروس على طريقة واحدة، وهي الطريقة العامة، وقد أتطرق إلى طرق أخرى في الدروس القادمة.

قم بتشغيل VBA كما تعلمت في الدرس الأول، ثم قم بإضافة وحدة نمطية Module من القائمة Insert>Module فتظهر نافذة جديدة باسم Module1 كما هو موضح في الشكل (2-1):

الشكل (2-1)
الشكل (2-1)

بعد إضافة الوحدة النمطية، يُضاف بند جديد إلى نافذة المشروع التي تبين مكونات المشروع بما يشبه شجرة المجلدات في مستكشف ويندوز، ويمكن إعادة فتح نافذة الوحدة النمطية Module1 بعد إغلاقها بالنقر المزدوج على كلمة Module1 الموجودة في نافذة المشروع.

إضافة ماكرو

سنقوم الآن بإضافة الماكرو الأول وهو باسم Macro1.

ملاحظة: يفضل دائماً اختيار اسم معبر للماكرو يدل على الوظيفة التي يقوم بها ولكن سنتجاوز ذلك في هذا الدرس.

أضف العبارة Public Sub Macro1 في نافذة Module1 ثم اضغط Enter، فيتم إضافة سطر جديد بشكل تلقائي وهو End Sub كما في الشكل (2-2):

الشكل (2-2)
الشكل (2-2)

لاحظ ظهور اسم Macro1 ضمن اللائحة المنسدلة اليمنى في أعلى نافذة Module1، وهذه اللائحة تحوي أسماء الماكروات التي في الوحدة النمطية Module1.

سنقوم الآن بإضافة أمر إلى الماكرو Macro1 لإظهار رسالة تحوي النص التالي: هذا مثال عن تشغيل الماكرو.

سنستخدم لذلك أحد أوامر فيجوال بيسيك وهو MsgBox الذي يقوم بإظهار رسالة كالموضحة في الشكل (2-4)، ويفضل الرجوع إلى ملف التعليمات لمزيد من المعلومات حول وظيفة MsgBox، ويمكنك الحصول على تعليمات أي أمر فيجوال بيسيك بوضع مؤشر الكتابة على الأمر ثم ضغط مفتاح F1.

أضف السطر التالي بين السطرين السابقين:

MsgBox "هذا مثال عن تشغيل الماكرو", vbMsgBoxRight Or _
   vbMsgBoxRtlReading, "الدرس الثاني"

ملاحظة: نستخدم الرمز ( _ ) في نهاية السطر للدلالة على أن السطر الذي يليه تابع له، وعلى هذا يمكننا كتابة السطرين السابقين على سطر واحد ولكن بدون الرمز ( _ ) في نهاية السطر الأول.

سيبدو الماكرو كما هو موضح في الشكل (2-3)

الشكل (2-3)
الشكل (2-3)

نصطلح تسمية كل شيء بين سطري Sub و End Sub باسم (برنامج فرعي أو جزئي)، ويكون اسم هذا البرنامج الفرعي هو الكلمة التي تلي كلمة Sub وهي هنا Macro1.

لقد انتهينا للتو من كتابة أول ماكرو، ويمكنك تنفيذه بواسطة الطريقة المشروحة في الدرس الأول، أو بوضع مؤشر الكتابة ضمن أسطر الماكرو والضغط على المفتاح F5، وعند التنفيذ تظهر الرسالة الموضحة في الشكل (2-4):

الشكل (2-4)
الشكل (2-4) : تظهر هذه الرسالة عند تنفيذ الماكرو السابق

إضافة نموذج (Form):

يمكنك إضافة نموذج (أي صندوق حوار) إلى برنامجك عبر القائمة Insert>User Form، فتظهر نافذة جديدة تحوي النموذج الجديد باسم UserForm1 وهو لا يحوي أية أداة في داخله، كما تظهر لائحة الأدوات التي يمكن إضافتها إلى النموذج، لاحظ الشكل (2-5):

الشكل (2-5)
الشكل (2-5)

إضافة أدوات إلى النموذج:

الآن سنقوم بإضافة بعض الأدوات إلى النموذج، ولكن أولاً سأقوم بشرح مبسط لبعض الأدوات الموجودة في لائحة الأدوات ToolBox.

الأداة الأيقونة الاستخدام
الاختيار Select Icon لا تعتبر هذه الأداة من الأدوات التي تستخدم في تصميم النموذج ولكنها تستخدم لاختيار أداة موجودة مسبقاً ضمن النموذج من أجل تعديلها مثلاً.
عنوان Label Label Icon لعرض نص وصفي
صندوق نص TextBox Textbox Icon لإدخال بيانات من قبل المستخدم
قائمة ListBox List Icon تستخدم لسرد مجموعة من الخيارات والسماح للمستخدم بانتقاء خيار واحد أو أكثر منها
قائمة منسدلة
ComboBox
Combobox Icon تجمع بين سلوك صندوق النص وسلوك القائمة، حيث يسمح للمستخدم بكتابة قيمة ما كما يسمح له باختيار قيمة ما من القائمة التي يمكن فتحها بالنقر على السهم الموجود على جانبها.
زر أمر
CommandButton
Button Icon يستخدم لإضافة زر أوامر، ونستخدمه عادة لتنفيذ أمر أو مجموعة أوامر بعض النقر عليه.
صورة Image Image Icon لعرض صورة على النموذج

سنقوم بإضافة أداة عنوان وكذلك زر أوامر ، كما في الشكل (2-6):

الشكل (2-6)
الشكل (2-6)

لإضافة أداة العنوان انقر على زر أداة العنوان (Label) في لوحة الأدوات ToolBox وقم برسم أداة العنوان مستعيناً بالشكل (2-6).

والآن سنحدد بعض خصائص أداة العنوان، وللقيام بذلك نختارها أولاً بواسطة أداة الاختيار ثم نستخدم نافذة الخصائص Properties الموضحة في الشكل (2-7):

الشكل (2-7): نافذة الخصائص
الشكل (2-7): نافذة الخصائص

ملاحظة: إذا لم تظهر نافذة الخصائص بعد اختيار الكائن المراد تغيير خصائصه، اضغط F4 على لوحة المفاتيح أو اختر الأمر (Properties Window) من قائمة (View).

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

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

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

خاصية Caption: تحدد النص الموجود على أداة العنوان، انقر نقراً مزدوجاً على Caption ضمن نافذة الخصائص، الشكل (2-7)، ثم اكتب النص الذي تريد ظهوره على أداة العنوان وهو هنا: يبين هذا المثال كيفية إظهار نموذج (صندوق حوار)

سنضيف الآن زر أوامر يقوم بإغلاق النموذج، لإضافته اختر CommandButton من لوحة الأدوات ثم ارسم زر الأوامر ضمن النموذج كما سبق، استعن بالشكل (2-6).

غير خاصية Caption له إلى : إغلاق

اختر النموذج وغير خاصية Caption له إلى الدرس الثاني

يمكنك تجريب البرنامج الآن بأن تجعل النموذج نشطاً بأن تنقر فوقه ثم تضغط على المفتاح F5.

ستظهر النافذة الموضحة في الشكل (2-8):

الشكل (2-8)
الشكل (2-8): يظهر صندوق الحوار بعد تشغيل البرنامج

استخدام الأحداث (Events)

انقر على زر (إغلاق). من المفترض أن يتم إغلاق النافذة ولكن لم يحدث ذلك، لأننا لم نحدد ماذا سيحدث عند النقر على هذا الزر لذلك سنستخدم ما يسمى (الأحداث Events) وهي عبارة عن أماكن لوضع شيفرة ما عند حدوث شيء كالنقر على زر أو تمرير مؤشر الفأرة فوق النموذج أو النقر المزدوج عليه …

وتوجد العديد من الأحداث سيتم شرح أهمها في وقته، وسنستخدم الآن الحدث Click وهو الحدث الذي يحدث عند النقر على كائن ما.

أولاً قم بإغلاق النافذة السابقة بالنقر على زر x الموجود في زاويتها.

عدنا الآن إلى نافذة VBA، انقر نقراً مزدوجاً على الزر الذي قمت بإضافته سابقاً ضمن النموذج، فتظهر نافذة لإضافة الكود (الشيفرة) وهي مبينة في الشكل (2-9):

الشكل (2-9)
الشكل (2-9)

لاحظ أنه تم إضافة سطرين بشكل تلقائي يشكلان برنامج فرعي (كما تم تعريفه سابقاً) اسمه CommandButton1_Click وهذا الاسم مقسم إلى قسمين يفصل بينهما الرمز ( _ ) وهما:

CommandButton1: ويدل على اسم الأداة التي ستنفذ الحدث وهذا الاسم أشرنا إليه في نافذة الخصائص.

Click: اسم الحدث الذي ستقوم به الأداة.

سنضيف الآن الأمر الذي يغلق النافذة وسنستخدم أحد أوامر فيجوال بيسيك وهو Unload ، كما يلي:

Unload Me

إن الكلمة Me تشير إلى النموذج الذي يتم تنفيذ البرنامج ضمنه.

يصبح البرنامج الفرعي كما في الشكل (2-10):

الشكل (2-10)
الشكل (2-10)

Private Sub CommandButton1_Click()
    Unload Me
End Sub

ويمكن ترجمة الكود السابق كما يلي:

عند النقر (Click) على زر CommandButton1 نفذ الأمر Unload Me،  انتهى.

الآن يمكن تجريب البرنامج بالضغط على F5.

 إضافة ماكرو لإظهار النموذج

والآن سنضيف ماكرو ثانٍ إلى قائمة الماكروات لإظهار النموذج من ضمن بيئة أوتوكاد، قم بإظهار نافذة Module1 السابقة (بالنقر المزدوج على اسمها في نافذة المشروع) وأضف الكود التالي:

Public Sub Macro2()
   UserForm1.Show
End Sub

حيث أضفنا برنامج فرعي جديد اسمه Macro2 ليشير إلى الماكرو Macro2 وضمن هذا البرنامج أضفنا السطر UserForm1.Show وذلك لإظهار النموذج الذي قمنا بتصميمه سابقاً والذي اسمه UserForm1 والذي يمكن تغييره من نافذة خصائص النموذج.

قم بتجريب البرنامج كما سبق في الدرس الأول.

حفظ المشروع

يمكن حفظ المشروع بإحدى طريقتين:

  • ضمن ملف مستقل ذو لاحقة (امتداد) dvb كالمثال المقدم في الدرس الأول، ومن مزايا هذه الطريقة أننا يمكننا تحميل البرنامج متى أردنا.
  • أو يمكن حفظه ضمن ملف dwg أي ضمن ملف اللوحة الذي نعمل عليه، ويتم في هذه الحالة تحميله مع اللوحة.

وسنقتصر حالياً على الطريقة الأولى.

من قائمة File التابعة لمحرر فيجوال بيسيك اختر الأمر Save، ثم أعط اسماً لملف البرنامج.

خاتمة

أنهينا بعون الله الدرس الثاني من هذه السلسلة، وقد تعلمت في هذا الدرس:

  • إضافة وحدة نمطية جديدة وإضافة الماكروات إليها.
  • تشغيل الماكرو مباشرة من بيئة VBA بالضغط على F5.
  • إضافة نموذج جديد وإضافة أدوات إليه.
  • ما هي الخصائص وكيفية تعديلها.
  • ما هي الأحداث وكيفية إضافة أوامر ضمنها.
  • حفظ المشروع أو البرنامج.

اضطررت في هذا الدرس إلى الإسهاب قليلاً في الشرح لتوضيح بعض الأمور للمبتدئين وسأكتفي بالإشارة إليها في الدروس القادمة كأن أقول:

أضف ماكرو باسم DrawLine، أو أضف زر أوامر للنموذج، دون شرح كيفية إضافته، لذلك يجب فهم هذا الدرس والدرس السابق جيداً.

سنقوم في الدرس القادم  - إن شاء الله - بالبدء بشرح كائن أوتوكاد وهو هدف هذه السلسلة من الدروس.

تحميل