برمجة اكسيل–Excel Programming–الجزء الرابع
زيادة فاعلية أكواد الماكرو
هيا نقوم بتطوير الماكرو " تعديل – الخريطة " وجعله يؤدي عمل الماكرو " إعادة – الخريطة بجوار عمله ... لتسهيل التعديل يفضل إزالة سطور الكود التي لا تؤثر في عمل الماكرو .. وقبل عمل ذلك أقراء الملحوظة فى أخر الفقرة حتي لا تضطر لإعادة تسجيل الماكرو مرة أخري.
لإزالة سطور الكود التي لا تؤثر في عمل الماكرو .. اسحب عليهم ثم اضغط مفتاح Delete من لوحة المفاتيح .
كما يمكنك الضغط بالماوس في الهامش الأيسر بجوار السطر اذلي تريد لتحديده .. ثم السحب لأعلي أو لأسفل لتحددد سطور أخري إذا كنت تريد ذلك .
تأمل أكوادك الآن بعد مسح السطور .
لا تقلقل من الأسطر الفارغة فإن محرر VBA يتجاهلها مثل سطور التعليقات تماما ولا تؤثر مطلقا فى عمله .
السطر الأول فى الماكرو الأول والثاني متطابقين .
السطر الأخير فى الماكرو الأول والثاني متطابقين ....
باقي مهام الماكرو " تعديل الخريطة "
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
يصبح الكود كما يلي
لا تقلقل من المسافات الفارغة في بداية سطور الكود فإن محرر VBA يتجاهلها تماما مثل سطور التعليقات والأسطر الفارغة .. ولكنها تفيد فقط في تسهيل قراء الكود ...
لا تقلقل من محرر VBA فهو يشبه كثيرا برنامج Note Pad الملحق بويندوز ويمكنك التعامل معه مثل أى محرر نصوص وستجد به الكثير من الخيارات التي تسهل عليك كتابة الكود .
هيا بنا نستعرض كيف قمنا بتعديل الكود السابق للماكرو " تعديل – الخريطة "
1 – ضع المؤشر في السطر الأول من الكود .. اضغط مفتاح End من لوحة المفاتيح لتجد أن المؤشر تحرك إلى نهاية السطر الحالي .
2 – اضغط Enter مرتين لإضافة سطرين ... أبد بكتابة " If " ... ثم اضغط مفتاح المسافة ..
لا تقلق بعد كتابة If عند محاولتك تحريك المؤشر سوف تظهر لك الرسالة التالية .
فإن محرر VBA يذكر أن If يجب أن تكمل لها شرطها ويكتبها لك باللون الأحمر لتذكرك اضغط Ok ... ولا تقلق من تكرارها .
3 – اسحب علي السطر
Active Chart. Has Legend = True
في الماكرو "إعادة – الخريطة " لتحديده.
4 – اضغط الأيقونة Copy لنسخة السطر.
5 - ضع المؤشربعد كلمة "IF " ثم اضغط الأيقونة Paste ... للصق السطر بعد كلمة "If "اضغط مفتاح Delete من لوحة المفاتيح لمسح الزائدة ... وانتبه لمسح أى حروف من الكود .
6 اضغط مفتاح End من لوحة المفاتيح لتجد أن المؤشر تحرك إلى نهاية السطر الحالي ... اضغط مفتاح المسافة لترك مسافة .... ثم اكتب "Then " .. ثم اضغط Enter .
ستجد أن كلمة If و Then وtrue تم تحولهم للون الأزرق للدالة علي أن الكود السابق كتب بشكل صحيح ...
7 – اضغط Enter لإضافة سطر .. ضع المؤشر في بداية السطر الثالث والرابع للماكرو "تعديل- الخريطة" ... اضغط مفتاح Tab ليتم محاذاتهم للداخل ولكي توضح لمن يري الكود أنهم هم الجمل المطلوب تنفيذها بعد Then .
هذه المسافات ليس لها أى تأثير علي الكود
8 – اضغط مفتاح Enter في نهاية الجملة الثانية لتحصل علي سطر جديد .... اكتب فيه "Else " مع محاذاتها مع "If " اضغط Enter.... ستجد أن كلمة Else تم تحويلها للون الأزرق للدالة علي أن الكود السابق كتب بشكل صحيح .
9 – وتحرك إلى الماكرو "إعادة – الخريطة " وحدد السطرين الثالث والرابع وذلك بالسحب عليهم .
10 – ثم اضغط الأيقونة Copy لنسخهم .
11 – تحرك إلى السطر الذي به جملة Else ثم اضغط Enter بعد لإضافة سطر جديد ضع المؤشر في السطر الجديد ثم اضغط الأيقونة Paste لوضع السطرين .
12 – ثم حاذيهم مع الجمل بعد If والتي تم إدخالها مفتاح Tab ليتم محاذاتهم للداخل ولكي توضح لمن يري الكود أنهم هم الجمل المطلوب تنفذها بعد Else .
13 – ضع المؤشر فى أخر سطر فى الكود تم لصقه .. اضغط مفتاح End من لوحة المفاتيح لتجد أن المؤشر تحرك إلى نهاية السطر الحالي .. اضغط Enter بعد لإضافة سطر جديد... ولإنهاء جملة If يجب كتابة " End If "
14 – اكتب اسم جديد للماكرو وليكن " تغير – الخريطة"
15 – قم بمسح كل سطور الماكرو "إعادة – الخريطة" ... بالسحب عليها ثم اضغط مفتاح Delete .
ليصبح محرر VBA لديك كما يلي.....
16 – اضغط الأيقونة Save لحفظ كل هذه التعديلات .
17 – اضغط الأيقونة View Microsoft في شريط الأدوات الرئيسي للمحرر VBA لنعد لـ Excel ونجرب الماكرو الجديد "تغير – الخريطة " .
18 – واضغط الأيقونة Run Macro يظهر لك الصندوق الحواري Macro اضغط اسم الماكرو "تغيير – الخريطة " ولن تجد غيره ... ثم اضغط Run ستجد أنه يعمل .
19 – اضغط Run مرة أخري ستجد أنه يعمل .
يمكنك حفظ الأكواد التي قمت بتسجيلها وذلك ليمكنك الرجوع لها عند حدوث خطأ وذلك باختيار الأمر Export من القائمة File في محرر VBA ليعرض لك الصندوق الحواري Export File .. اكتب الاسم اذلي تريد أو اقبل الاسم المقترح وهذا أفضل ثم حدد مكان الحفظ ثم اضغط المفتاح Save
لاستعادة الكود بعد حفظه استخدم الأمر Import من القائمة File في محرر VBA ليعرض لك الصنودق الحواري Import File ... اضغط اسم الملف ثم اضغط المفتاح Open .
اعرض النافذة Project Explorer باختيارها من القائمة View ثم اضغط مزدوجا الملف ليعرض لك .
حتي لا يحدث مشاكل من التكرار فى أسماء الماكرو ولا تنسي ضغط الملف السابق بالمفتاح الأيمن واختيار Remove واضغط No في الرسالة التي تعرض .
هذه كانت جولة فى VBA أردت بها أن أعرض لك تناول مختلف يركز علي ما يقدمه لك الماكرو من أكواد وتقنيات Technique علمية لكيفية تطويعها بشكل فعال ينهي كم كبير من المشاكل اليومية التي تقابلنا فى عملنا فى Excel .
معشر المبرمجون يبدءون عملهم بتسجيل ماكرو بما يريدون .
ثم تصفية الماكرو وتعديل أى أكواد جامدة تسبب مشاكل Hard – Code .
ثم تعديل أكواد الماكر والدمج بينها بجمل شرط أو أى من الأساليب المتاحة في VBA ...
وأدعوك في نهاية هذه الجولة مع VBA إذا كانت بالنسبة لك غير مشبعة .
وإذا كانت تري أن أسلوب تقديمنا للمادة العلمية في هذا الكتاب لاقي استحسانك إلي الإنطلاق معنا في كتابنا برمجة Excel والذي يتعدي حدوده متخصص في برمجة Excel بكثير ويقودك إلى احترف برمجة Page Front , Access , Power Point , Word – Office . وأى تطبيق أخر يستخدم VBA .
تعليقات
إرسال تعليق