الاستاذ مجدى
عزيزي الزائر / عزيزتي الزائرة يرجي التكرم بتسجبل الدخول اذا كنت عضو معنا
او التسجيل ان لم تكن عضو وترغب في الانضمام الي اسرة المنتدي
سنتشرف بتسجيلك
شكرا
ادارة المنتدي







 
الرئيسيةالأستاذ التعليماليوميةس .و .جبحـثالأعضاءضع التسجيلالمجموعاتدخولالتسجيل
سبحانك لا علم لنا إلا ما علمتنا أنك أنت العليم
عزيزى الزائر قم بالتسجيل بالمنتدى لمشاهدة باقى الاقسام المهمه
مع تحيات مجدى عبد المنعم محمود يونس ببورسعيد " مدير المنتدى "
أهلا بك من جديد يا زائر آخر زيارة لك كانت في
آخر عضو مسجل alyoon89 فمرحبا به


شاطر | 
 

 برمجة إكسل - الدرس الثالث - التعرف على بيئة برمجة VBA:

اذهب الى الأسفل 
كاتب الموضوعرسالة
مجدى يونس
Admin
avatar

عدد المساهمات : 1000
تاريخ التسجيل : 22/02/2013
العمر : 64

مُساهمةموضوع: برمجة إكسل - الدرس الثالث - التعرف على بيئة برمجة VBA:   الإثنين ديسمبر 02, 2013 2:31 pm

برمجة إكسل - الدرس الثالث - التعرف على بيئة برمجة VBA:

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

مقدمة
ما هي بيئة برمجة فيجوال بيسيك للتطبيقات VBA؟
تشغيل فيجوال بيسيك للتطبيقات
التعرف على مكونات بيئة البرمجة
إضافة وحدة برمجية Module
كتابة برنامج بسيط
شرح البرنامج
تنفيذ البرنامج
خاتمة

مقدمة:

كنا قد تعلمنا في الدرسين السابقين كيف نقوم بتسجيل ماكرو، وقلنا أنه عند تسجيل الماكرو فإن برنامج إكسل يقوم عملياً بكتابة برنامج يقوم بتنفيذ نفس المهام التي قمنا بتسجيلها.

سنتعرّف في هذا الدرس على بيئة برمجة لغة فيجوال بيسيك للتطبيقات، وكيفية تشغيلها وإضافة وحدات برمجية إليها، وكذلك كتابة برنامج بسيط يدوياً حيث سنقوم بكتابة برنامج ليقوم بنفس مهمة الماكرو الذي تم تسجيله في الدرس السابق.
ما هي بيئة برمجة فيجوال بيسيك للتطبيقات VBA؟

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

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

لتشغيل بيئة البرمجة من إكسل، اذهب إلى شريط أدوات المطور (راجع الدرس الأول) وانقر على زر Visual Basic فتظهر النافذة المبينة بالشكل (3-1).

أو اختصاراً يمكنك الضغط على الاختصار Alt + F11 في لوحة المفاتيح.

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



الشكل (3-1): مكونات بيئة برمجة VBA
التعرف على مكونات بيئة البرمجة

تتكون بيئة برمجة VBA كما هو موضح في الشكل (3-1) من:

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

إضافة وحدة برمجية Module

عادة عند البدء بمشروع جديد فإن هذا المشروع لا يحوي وحدة برمجية.

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

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

لإضافة وحدة برمجية جديدة، من قائمة Insert اختر الأمر Module، فيتم إضافة وحدة جديدة باسم افتراضي، ويمكنك تغيير الاسم باختيارها من متصفح المشاريع، ثم تغيير الاسم من نافذة الخصائص كما هو موضح في الشكل (3-1) أعلاه.



كتابة برنامج بسيط

لكتابة برنامج نبدأ بكلمة Sub ثم اسم البرنامج (وهو اسم اختياري) ثم نضغط Enter.

ملاحظة: أنا أفترض أنك على معرفة بسيطة بلغة فيجوال بيسيك 5 أو 6، لذلك لن أتوسع في شرح الأوامر المشتركة.

سنقوم بإضافة برنامج يقوم بنفس عمل الماكرو الذي قمنا بتسجيله في الدرس السابق لكن هذه المرة سنقوم بكتابته يدوياً وسنعطيه نفس الاسم NameAndTime.

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

ملاحظة: بمجرد إضافة السطر الأول ثم ضغط Enter تقوم VBA بإضافة السطر الثاني.

Sub NameAndTime()

End Sub



الشكل (3-3): إضافة برنامج جديد.

حتى هذه اللحظة فإن البرنامج لا يحوي أي تعليمة برمجية، لكنه يظهر في قائمة البرامج أو الماكروات كما هو مبين في الشكل (3-5).

سنقوم بإضافة الأسطر التالية بين السطرين السابقين:



01 ActiveCell.FormulaR1C1 = "سلسلة برامج مجدى يونس"
02 ActiveCell.Offset(1, 0).Range("A1").Select
03 ActiveCell.FormulaR1C1 = "=NOW()"
04 Selection.Copy
05 Selection.PasteSpecial Paste:=xlPasteValues
06 ActiveCell.Offset(-1, 0).Range("A1:A2").Select
07 Selection.Font.Bold = True
08 Selection.Font.Size = 16

ملاحظة: الأرقام في بداية الأسطر غير ضرورية، ويفضل عدم كتابتها، لكن قمت بكتابتها لشرح البرنامج لاحقاً.

يصبح البرنامج كما في الشكل (3-4)



الشكل (3-4): البرنامج بصيغته النهائية
شرح البرنامج السابق

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

نستخدم الكلمة ActiveCell للدلالة على الخلية الحالية، فإذا أردنا تعديل لون الخلية الحالية أو قيمتها أو المعادلة التي فيها أو أي شيء يخصها، نستخدم الكائن ActiveCell ثم نغير الخاصية التي نريد، أو ننفذ الأمر المتعلق.

في السطر الأول قمنا بإسناد القيمة "سلسلة برامج جواد الإنشائية" للخاصية (FormulaR1C1) وهكذا قمنا بتعديل محتويات الخلية.

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

في السطر الثاني استخدمنا الخاصية Offset للخلية الحالية والتي تعيد لنا مجالاً جديداً للخلايا يبعد عن الخلية الحالية بمقدار سطر واحد للأسفل، وقد حددنا ذلك بالأرقام 1 لعدد الأسطر و 0 لعدد الأعمدة بعد الخاصية Offset.

ثم استخدمنا الخاصية Range("A1")i للمجال الجديد وهذا يعني أننا نريد الخلية الأولى من هذا المجال، ثم أعطيناها أمر Select لاختيارها، أي أن السطر الثاني يقوم باختيار الخلية التي تحت الخلية الأساسية التي بدأنا برنامجنا بها.

في السطر الثالث قمنا بتغيير محتوى الخلية الحالية الجديدة إلى المعادلة Now.

في السطر الرابع قمنا بنسخ محتويات الخلية الحالية إلى الحافظة.

في السطر الخامس قمنا بلصق قيمة الخلية وليس المعادلة وقد وضحنا السبب في الدرس السابق.

في السطر السادس قمنا باختيار الخليتين السابقتين.

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

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

يمكننا اختصار بعض الأسطر من البرنامج هذا عن طريق استبدال الأسطر 3 وحتى 5 بالسطر التالي:

ActiveCell.FormulaR1C1 = Now

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

يصبح البرنامج كما يلي:

01 ActiveCell.FormulaR1C1 = "سلسلة برامج جواد الإنشائية"
02 ActiveCell.Offset(1, 0).Range("A1").Select
03 ActiveCell.FormulaR1C1 = Now
06 ActiveCell.Offset(-1, 0).Range("A1:A2").Select
07 Selection.Font.Bold = True
08 Selection.Font.Size = 16
تنفيذ البرنامج

لتنفيذ البرنامج السابق، من إكسل اختر الخلية التي تريد إدراج الاسم فيها ثم اضغط على الاختصار Alt+F8 فتظهر نافذة الماكروات أو نافذة البرامج كما سأسميها من الآن، منها اختر البرنامج ثم انقر على الزر Run.

ملاحظة: راجع الدرس السابق لمزيد من التفصيل حول استدعاء هذه النافذة.



الشكل (3-5): نافذة تشغيل البرامج
خاتمة

تعلمت في هذا الدرس كيف يتم تشغيل بيئة برمجة VBA وكيف تقوم بإضافة وتشغيل برنامج جديد.

http://www.jwdstructure.com/downloads/vba/excel-lesson03.zip



_________________
عندما تولد يابن ادم يؤذن فى أذنك من غير صلاة وعندما تموت يصلى عليك من غير أذان وكأن حياتك فى الدنيا ليست سوى الوقت الذى تقضيه بين الأذان والصلاة فلا تقضيهما فيما لاينفع
---((الله ناظرى الله سامعى الله مطلع علي))-

الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://magdi54.forumegypt.net
Ahmed Ibrahim



عدد المساهمات : 5
تاريخ التسجيل : 31/10/2014

مُساهمةموضوع: رد: برمجة إكسل - الدرس الثالث - التعرف على بيئة برمجة VBA:   الجمعة أكتوبر 31, 2014 2:48 pm

جزاكم الله خيرااااااااااااااااااا
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
مجدى يونس
Admin
avatar

عدد المساهمات : 1000
تاريخ التسجيل : 22/02/2013
العمر : 64

مُساهمةموضوع: رد: برمجة إكسل - الدرس الثالث - التعرف على بيئة برمجة VBA:   الجمعة أكتوبر 31, 2014 2:51 pm

شكرا لك

_________________
عندما تولد يابن ادم يؤذن فى أذنك من غير صلاة وعندما تموت يصلى عليك من غير أذان وكأن حياتك فى الدنيا ليست سوى الوقت الذى تقضيه بين الأذان والصلاة فلا تقضيهما فيما لاينفع
---((الله ناظرى الله سامعى الله مطلع علي))-

الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://magdi54.forumegypt.net
 
برمجة إكسل - الدرس الثالث - التعرف على بيئة برمجة VBA:
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
الاستاذ مجدى :: قسم مجموعة الاوفيس :: قسم الاكسل-
انتقل الى: