الاستاذ مجدى
برمجة إكسل - الدرس الثالث - التعرف على بيئة برمجة VBA: 613623
عزيزي الزائر / عزيزتي الزائرة يرجي التكرم بتسجبل الدخول اذا كنت عضو معنا
او التسجيل ان لم تكن عضو وترغب في الانضمام الي اسرة المنتدي
سنتشرف بتسجيلك
شكرا برمجة إكسل - الدرس الثالث - التعرف على بيئة برمجة VBA: 829894
ادارة المنتدي برمجة إكسل - الدرس الثالث - التعرف على بيئة برمجة VBA: 103798

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


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



 
الرئيسيةالأستاذ التعليمأحدث الصورضع التسجيلدخولالتسجيل
سبحانك لا علم لنا إلا ما علمتنا أنك أنت العليم
عزيزى الزائر قم بالتسجيل بالمنتدى لمشاهدة باقى الاقسام المهمه
مع تحيات مجدى عبد المنعم محمود يونس ببورسعيد " مدير المنتدى "
أهلا بك من جديد يا زائر آخر زيارة لك كانت في الخميس يناير 01, 1970
آخر عضو مسجل Heliany فمرحبا به


 

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

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


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

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

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

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

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

مقدمة:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sub NameAndTime()

End Sub

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

الشكل (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)

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

الشكل (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.

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

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

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

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

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



_________________
لا تعطيني سمكة ... و لكن علمني كيف أصطاد السمك

برمجة إكسل - الدرس الثالث - التعرف على بيئة برمجة VBA: Aaa11
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://magdi54.forumegypt.net
Ahmed Ibrahim




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

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

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


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

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

شكرا لك

_________________
لا تعطيني سمكة ... و لكن علمني كيف أصطاد السمك

برمجة إكسل - الدرس الثالث - التعرف على بيئة برمجة VBA: Aaa11
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://magdi54.forumegypt.net
bnnami




عدد المساهمات : 79
تاريخ التسجيل : 01/08/2022

برمجة إكسل - الدرس الثالث - التعرف على بيئة برمجة VBA: Empty
مُساهمةموضوع: رد: برمجة إكسل - الدرس الثالث - التعرف على بيئة برمجة VBA:   برمجة إكسل - الدرس الثالث - التعرف على بيئة برمجة VBA: Avatarالأربعاء أغسطس 10, 2022 1:42 am

شكرا جزيلا أستاذنا الفاضل
الرجوع الى أعلى الصفحة اذهب الى الأسفل
 
برمجة إكسل - الدرس الثالث - التعرف على بيئة برمجة VBA:
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» برمجة إكسل - الدرس الثاني - التعرف على الماكرو:
» برمجة إكسل - الدرس الأول - ما هي لغة VBA؟
» برمجة إكسل - الدرس الخامس - إضافة تابع مخصص 2:
» برمجة إكسل - الدرس الرابع - إضافة تابع مخصص 1:
» تطبيقات برمجة إكسل - التطبيق الأول - إضافة تابع حساب تسليح مقطع 1:

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