برمجة اكسيل–Excel Programming–الجزء الرابع

زيادة فاعلية أكواد الماكرو

هيا نقوم بتطوير الماكرو " تعديل – الخريطة " وجعله يؤدي عمل الماكرو " إعادة – الخريطة بجوار عمله ... لتسهيل التعديل يفضل إزالة سطور الكود التي لا تؤثر في عمل الماكرو .. وقبل عمل ذلك أقراء الملحوظة فى أخر الفقرة حتي لا تضطر لإعادة تسجيل الماكرو مرة أخري.

لإزالة سطور الكود التي لا تؤثر في عمل الماكرو .. اسحب عليهم ثم اضغط مفتاح Delete من لوحة المفاتيح .

excel-20_03

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

excel-20_10

تأمل أكوادك الآن بعد مسح السطور .

لا تقلقل من الأسطر الفارغة فإن محرر VBA يتجاهلها مثل سطور التعليقات تماما ولا تؤثر مطلقا فى عمله .

excel-20_06

السطر الأول فى الماكرو الأول والثاني متطابقين .

excel-21_03

السطر الأخير فى الماكرو الأول والثاني متطابقين ....

باقي مهام الماكرو " تعديل الخريطة "

Active Chart . Chart Type = xl Area Staked

1 – السطر الثالث والذي يغير

نوع الخرية Chart Type

للخريطة النشطة الحالية Active Chart

إلى xl Area Staked

هذا هو الشطر هو المهمة الأولي المميزة للماكروا " تعديل – الخريطة " ..

Active Chart .Has Legend = False

2 – السطر الرابع والذي يجعل

قيمة الخاصية مفتاح الخريطة Has Legend

للخريطة النشطة الحالية Active Chart

بالقيمة False وبالتالي لا يعرض مفتاح الخريطة .

وهذا السطر هو تلمهمة الثانية للميزة للماكروا " تعديل – الخريطة " .

باقي مهام الماكرو " أعادة – الخريطة " .

Active Chart .Chart Type= xlColumn Clustered

- السطر الثالث والذي يغير

- نوع الخريطة Chart Type

للخريطة النشطة الحالية Active Chart

إلى xlColumn Clustered

هذا السطر هو المهمة الأولي المميزة للماكروا " إعادة – الخريطة " ...

Active Chart. Has Legend = True

السطر الرابع واذلي يجعل ..

قيمة الخاصية مفتاح الخريطة Has Legend

بالقيمة True وبالتالي يعرض مفتاح الخريطة

وهذا السطر هو المهمة الثانية للميزة للماكروا " إعادة – الخريطة "

ماذا لو دمجنا الاثنان معا .. بالطبع اسمع من يقول سيظل السطر الأول والأخير بلا تغير ... ولن نكررهم .

ولكن كيف يمكننا اختبار حالة الخريطة .. لغة VBA مثلها مثل باقي لغات الكمبيوتر بها طرق كثيرة ااختبار يمكنك استخدام أى منها ... وسنتسخدم هنا

IF……. Then……. Else……. EndIF……. Then……. Else……. Endlf

أشهر طرق الشرط

وتوضع جملة الشرط بعد كلمة IF فإذا تحقق ..

تنفيذ الجملة بعد Then

وإذا لم يتحقق ...

تنفذ الجمل بعد Else

ويجب أن ينتهي الشرط بالجملة End IF

هي نستخدم الجملة ....

Active Chart. Has Legend = True

كجملة شرط لــ IF فإذا تحققت يتم تنفذ الجمل بعد Then ...

ونضع الجمل التالية

Active Chart. Has Legend= Flase

Active Chart. Chart Type = xlArea Stacked

بعد Then

وهذا السطران هما مضمون الماكرو " إعادة – الخريطة " الذي نريد تنفيذه عندما يكون مفتاح الخريطة معروض

وإذا لم يحقق الشرط يتم تنفذ الجمل بعد Else .... نضع الجمل التالية :

Active Chart. Has Legend = True

Active Chart. Chart Type = xlColumn Clustered

بعد Else

وهذا السطران مضمون الماكرو " تعديل الخريطة " اذلي نريد تنفيذه عندما يكون مفتاح الخريطة غير معروض

وننهي جمل الشرط بــ End IF

يصبح الكود كما يلي

excel-22_07

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

لا تقلقل من محرر VBA فهو يشبه كثيرا برنامج Note Pad الملحق بويندوز ويمكنك التعامل معه مثل أى محرر نصوص وستجد به الكثير من الخيارات التي تسهل عليك كتابة الكود .

هيا بنا نستعرض كيف قمنا بتعديل الكود السابق للماكرو " تعديل – الخريطة "

1 – ضع المؤشر في السطر الأول من الكود .. اضغط مفتاح End من لوحة المفاتيح لتجد أن المؤشر تحرك إلى نهاية السطر الحالي .

excel-22_03

2 – اضغط Enter مرتين لإضافة سطرين ... أبد بكتابة " If " ... ثم اضغط مفتاح المسافة ..

excel-22_05

لا تقلق بعد كتابة If عند محاولتك تحريك المؤشر سوف تظهر لك الرسالة التالية .

excel-22_10

فإن محرر VBA يذكر أن If يجب أن تكمل لها شرطها ويكتبها لك باللون الأحمر لتذكرك اضغط Ok ... ولا تقلق من تكرارها .

3 – اسحب علي السطر

Active Chart. Has Legend = True

في الماكرو "إعادة – الخريطة " لتحديده.

excel-23_03

4 – اضغط الأيقونة Copy لنسخة السطر.

excel-23_08

5 - ضع المؤشربعد كلمة "IF " ثم اضغط الأيقونة Paste ... للصق السطر بعد كلمة "If "اضغط مفتاح Delete من لوحة المفاتيح لمسح الزائدة ... وانتبه لمسح أى حروف من الكود .

excel-23_11

6 اضغط مفتاح End من لوحة المفاتيح لتجد أن المؤشر تحرك إلى نهاية السطر الحالي ... اضغط مفتاح المسافة لترك مسافة .... ثم اكتب "Then " .. ثم اضغط Enter .

excel-23_15

ستجد أن كلمة If و Then وtrue تم تحولهم للون الأزرق للدالة علي أن الكود السابق كتب بشكل صحيح ...

7 – اضغط Enter لإضافة سطر .. ضع المؤشر في بداية السطر الثالث والرابع للماكرو "تعديل- الخريطة" ... اضغط مفتاح Tab ليتم محاذاتهم للداخل ولكي توضح لمن يري الكود أنهم هم الجمل المطلوب تنفيذها بعد Then .

excel-23_06

هذه المسافات ليس لها أى تأثير علي الكود

8 – اضغط مفتاح Enter في نهاية الجملة الثانية لتحصل علي سطر جديد .... اكتب فيه "Else " مع محاذاتها مع "If " اضغط Enter.... ستجد أن كلمة Else تم تحويلها للون الأزرق للدالة علي أن الكود السابق كتب بشكل صحيح .

excel-23_10

9 – وتحرك إلى الماكرو "إعادة – الخريطة " وحدد السطرين الثالث والرابع وذلك بالسحب عليهم .

excel-23_14

10 – ثم اضغط الأيقونة Copy لنسخهم .

11 – تحرك إلى السطر الذي به جملة Else ثم اضغط Enter بعد لإضافة سطر جديد ضع المؤشر في السطر الجديد ثم اضغط الأيقونة Paste لوضع السطرين .

excel-24_06

12 – ثم حاذيهم مع الجمل بعد If والتي تم إدخالها مفتاح Tab ليتم محاذاتهم للداخل ولكي توضح لمن يري الكود أنهم هم الجمل المطلوب تنفذها بعد Else .

13 – ضع المؤشر فى أخر سطر فى الكود تم لصقه .. اضغط مفتاح End من لوحة المفاتيح لتجد أن المؤشر تحرك إلى نهاية السطر الحالي .. اضغط Enter بعد لإضافة سطر جديد... ولإنهاء جملة If يجب كتابة " End If "

excel-24_09

14 – اكتب اسم جديد للماكرو وليكن " تغير – الخريطة"

excel-24_03

15 – قم بمسح كل سطور الماكرو "إعادة – الخريطة" ... بالسحب عليها ثم اضغط مفتاح Delete .

excel-24_10

ليصبح محرر VBA لديك كما يلي.....

excel-25_03

16 – اضغط الأيقونة Save لحفظ كل هذه التعديلات .

17 – اضغط الأيقونة View Microsoft في شريط الأدوات الرئيسي للمحرر VBA لنعد لـ Excel ونجرب الماكرو الجديد "تغير – الخريطة " .

18 – واضغط الأيقونة Run Macro يظهر لك الصندوق الحواري Macro اضغط اسم الماكرو "تغيير – الخريطة " ولن تجد غيره ... ثم اضغط Run ستجد أنه يعمل .

excel-25_11

19 – اضغط Run مرة أخري ستجد أنه يعمل .

excel-25_06

يمكنك حفظ الأكواد التي قمت بتسجيلها وذلك ليمكنك الرجوع لها عند حدوث خطأ وذلك باختيار الأمر Export من القائمة File في محرر VBA ليعرض لك الصندوق الحواري Export File .. اكتب الاسم اذلي تريد أو اقبل الاسم المقترح وهذا أفضل ثم حدد مكان الحفظ ثم اضغط المفتاح Save

excel-25_10

لاستعادة الكود بعد حفظه استخدم الأمر Import من القائمة File في محرر VBA ليعرض لك الصنودق الحواري Import File ... اضغط اسم الملف ثم اضغط المفتاح Open .

excel-26_03

اعرض النافذة Project Explorer باختيارها من القائمة View ثم اضغط مزدوجا الملف ليعرض لك .

حتي لا يحدث مشاكل من التكرار فى أسماء الماكرو ولا تنسي ضغط الملف السابق بالمفتاح الأيمن واختيار Remove واضغط No في الرسالة التي تعرض .

excel-26_09

هذه كانت جولة فى VBA أردت بها أن أعرض لك تناول مختلف يركز علي ما يقدمه لك الماكرو من أكواد وتقنيات Technique علمية لكيفية تطويعها بشكل فعال ينهي كم كبير من المشاكل اليومية التي تقابلنا فى عملنا فى Excel .

معشر المبرمجون يبدءون عملهم بتسجيل ماكرو بما يريدون .

ثم تصفية الماكرو وتعديل أى أكواد جامدة تسبب مشاكل Hard – Code .

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

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

وإذا كانت تري أن أسلوب تقديمنا للمادة العلمية في هذا الكتاب لاقي استحسانك إلي الإنطلاق معنا في كتابنا برمجة Excel والذي يتعدي حدوده متخصص في برمجة Excel بكثير ويقودك إلى احترف برمجة Page Front , Access , Power Point , Word – Office . وأى تطبيق أخر يستخدم VBA .

تعليقات

المشاركات الشائعة من هذه المدونة

النشاط الاستثمارى والنشاط الجارى: النشاط الاستثمارى و النشاط الجارى

النماذج التقليدية لتقويم المشروعات الاستثمارية فى ظل ظروف التأكد

مدخل إلى علم المحاسبة Accounting– الجزء الأول