برنامج اكسل و تطبيقات الفيجوال بيزيك - الدرس الثاني

Excel & VBA applications_ Lesson no. 2

إعداد : محمد طاهر

 

الدرس الثاني :

التعرف علي محرر VBE (Visual Basic Editor) :
حتي اصدار اكسيل 95 كان الكود البرمجي يظهر كورقة منفصلة فى كتاب العمل Workbook و لكن بدءا من الاصدار 97 أصبح عليك أن تستخدم مصحح VBE حتي تستطيع أن تري الأقسام البرمجية ، علما بأنها لا تزال تخزن فى ملفات كتاب العمل و لكن لا يمكن التعامل معها حتي تستخدم ال VBE

لتشغيل محرر  VBE هناك 3 طرق
1-
اضغط علي ALT + F11
2-
من قائمة Tools --, Macros ---, Visual Basic Editor
3-
اختيار اليقونة الخاصة ب VBE من شريط الأدوات
هذا بالطبع و أنت داخل برنامج الاكسيل

بعد فتح ال VBE نلاحظ أن هناك خمسة أجزاء رئيسية له
1-
قضيب القوائم
2-
قضبان الأدوت Toolbars
3-
نافذة مستكشف المشروع Project Explorer
4-
نافذة الكود Code Window
5-
النافذة المباشرة Immediate Window
الجزئين الأول و الثاني لا جديد فيهما علي مستخدم الاكسيل سوي اختلاف المحتويات عن مثيليهما فى برنامج الاكسيل

التعامل مع مستكشف المشروعات Project Explorer
اذا لم يكن المستكش مفتوحا فى أقصي يسار الشاشة اضغط CTR+R لفتحه . نلاحظ ان كل كتاب عمل اكسيل أو أي Add-in تكون مفتوحة تعتبر مشروعا بذاتها.
يمكن التفكير فى المشروع ك كتجميع لمجموعة من الأشياء Objects و يمكن اظهار محتويات المشروع (توسيعه ) بالضغط علي ال ( + ) و ضغط أو اخفاء المحتويات بالضغط علي )- )
ملحوظة : لتوسيع مشروع محمي بكلة مرور لا بد من معرفة هذه الكلمة
و التي يمكن اضافتها من Tools --, Project Properties --, Protection و منه أيضا يتم تحديد اذا ما كان يسمح باظهار الكود أم لا ( يظهر فقط باستخدام كلمة السر )

و عادة ما يتكون المشروع من جزء خاص بالأكواد المخصصة لكل ورقة عمل Worksheet بالاضافة الي جزء للأكواد المخصصة لملف العمل ككل و يمكن اضافة Modules و Class Modules و Forms داخل كل مشروع كما سيلي بالتفصيل لاحقا .

و لكن مبدئيا لاضافة قسم برمجي Module يجب اختيار اسم المشروع أولا من مستكشف المشروعات ثم Insert --, Module أو نفس الخطوات من القائمة المختصرة بعد اختيار المشروع نختار Module من قائمة Insert

لحذف قسم برمجي نختاره ثم نختار Remove من قائمة File ثم نحدد ما اذا كنا نرغب فى تصديره قبل حذفه ام لا
لاستيراد ملف نفعل العكس : من File نختار Import و ذلك بعد اختيار المشروع الذي نريد الاستيراد اليه


النافذة المباشرة Immediate Window
هي مفيدة جدا لاختبار الكود و قد لا تكون مرئية و لاظهارها نضغط CTR+G



نافذة الكود
تسمي أحيانا Module Window و هي تتحوي الكود الخاص بكل جزء من المشروع ، و لكل جزء فى المشروع نافذة الكود الخاصة به و التي تظهر بالضغط ضغطة مزدوجة علي هذا الجزء فى نافذة مستكشف المشروعات
و نافذة الكود يمكن أن تحوي علي 4 أنواع من الاجراءات :


1-
الاجراءات الفرعية : Sub Procedures و هي مجموعة من الاجراءات التي تنفذ فعلا
2
-
اجراءات الوظائف : Function Procedures و هي مجوعة من ااجراءات التي تعيد قيمة او أكثر مثل الدالة sum و التي تجمع أكثر من قيمة و تعيد مجموعها
3-
الاعلانات : Declarations و هو معلومات تعطيها للغة ال VBA عن المتغيرات التي ستستخدمها مثل نوع البيانات لهذا المتغير هل هو نص أم رقم أم ...
4-
اجراءات المواصفة : Property Procedure و هي اجراءات خاصة تستخدم فى حالة ال Class Module

و ألان بعد هذه المقدمة لنبدأ بمثال بسيط لاستخدام ال VBA في برنامج ال Excel
لكتابة الكود فى قسم برمجي Module هناك طريقتان اما الكتابة و اما التسجيل

الطريقة الأولي : الكتابة

أضف قسم برمجي جديد Module كما سبق و بداخله اكتب :
 

Sub Hellomsg()
TryAgain:
Msg = "Is ArabTeam2000 Your Favorite Programming Site ?"
Ans = MsgBox(Msg, vbYesNo)
If Ans = vbNo Then
MsgBox "Why it is not ?????, Try Again, You Must Say Yes!!!"
GoTo TryAgain
Else
MsgBox "Good Answer !! "
End If
End Sub
 

أو انسخ الكود من هنا و الصقه فى الموديول

لتشغيل الكود
قف داخل ال Sub بالمؤشر
اضغط علي F5 أو
Run --, Sub
أو
اختر أيقونة Run من شريط الأدوات القياسي

هذا و أنت فى نافذة الكود
أو أغلق نافذة الكود ز توجه الي ملف ال Excel ثم اضغط ALT+F8
أو اختار Tools, Macro, Macros
ثم اختار Run بعد اختيار اسم الSub
فستحصل علي نفس النتيجة و هذا كله عن طريق تشغيل ال Sub الموجودة فى القسم البرمجي Module1

و الآن دعونا نحلل ما كتبنا فى هذا الكود

1-
علان الاجراء ( اسم الجراء )
Sub Hellomsg()
2-
تخصيص مكان يمكن للكود اعادة التنفيذ اليه لكي نعيد تنفيذ جزء من الكود
TryAgain:
3-
تخصيص قيمة للتغيرات Msg, Ans
4-
استخدام الدالة Msgbox و الاستفادة بناتج استخدامه ( الثوابت المبنية VByes, VBno ) فى تحديد الرسالة التي تظهر و تحديد هل نعود الي مكان محدد فى الكود أم لا و ذلك باستخدام التعبير If, Then, Else ,End if
5-
نهاية الSub

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

يمكن عمل مفتاح مختصر لتشغيل لاجراء البرمجي و ذلك من خلال
اضغط ALT+F8
أو اختار Tools, Macro, Macros
ثم اختار اسم القسم البرمجي ثم اختار Option
وحدد CTR+Q مثلا
و بذلك يمكن تشغيل لاجراء باستخدام المفتاح المختصر

بعد أن استخدمنا الكود داخل ملف الاكسيل لابد من تغيير نظام حماية الملف الي Medium أو Low لأن فى حالة High لا يعمل الكود مطلقا وذلك من Tools, Macro, Security و أقترح عليكم نظام الحماية المتوسط حيث يسألك عند فتح الملف هل تريد تفعيل الماكرو أم لا و في حالة اختيار ( لا ) لا يعمل أي من الأكواد المكتوبة داخل البرنامج

و الغرض من هذا هو حماية ملفات الاكسيل من الفيروسات المكتوبة ب VBA فعليك أن تكون متأكد من أنك تريد استخدام الكود فى الملف ! و الا فان كنت لا تعلم ما يوجد فى الملف من كود فاختار عدم تفعيل الماكرو و استكشف الكود أولا !! لأن بعض الأكواد المكتوبة ب VBA تفعل أفعال مضرة كثيرة و لا يستهان بها
 



==================================================