برمجة إكسل - الدرس الثاني - التعرف على الماكرو:
النقاط الأساسية:
مقدمة
ما هو الماكرو؟
ماذا سنفعل في هذا الدرس؟
تسجيل الماكرو
تشغيل الماكرو
الاطلاع على البرنامج الذي تم كتابته والتعديل عليه إن لزم الأمر
خاتمة
مقدمة:
في هذا الدرس سنتعرف بشكل سريع على ما يسمى (ماكرو) وكيف نقوم بتسجيله وإعادة تنفيذه والتعديل عليه يدوياً.
بعد انتهاء هذا الدرس قد تجد صعوبة في فهم بعض أوامر VBA التي سنستعرضها عند التعديل على الماكرو، وهذا أمر طبيعي، فهذا الدرس هو عبارة عن لمحة سريعة وسيتم شرح طريقة العمل في الدروس القادمة إن شاء الله.
ما هو الماكرو؟
الماكرو أو macro هو عبارة عن برنامج يقوم بتنفيذ بعض المهام المتكررة، ومن مزايا إكسل أنه يستطيع أن يتحسس ما تقوم به ثم يحوله إلى أوامر برمجية بلغة VBA تكافئ ما قمت به.
إذن الماكرو هو نوع خاص من البرامج وليس أمراً آخر مختلف عن البرمجة، وهو مصطلح يعني أن هذا البرنامج هو عبارة عن مجموعة من الأوامر التكرارية، أما البرنامج بشكل عام فيمكنه أن يحوي خوارزميات يقوم المبرمج بكتابتها لتقوم بمهام أكثر تعقيداً.
إذن من الناحية البرمجية لا يوجد فرق بين الماكرو والبرنامج، والفرق هو من ناحية المفهوم، كما أن الماكرو هو برنامج بسيط يقوم إكسل بكتابته تلقائياً بعد أن يتتبع الخطوات التي يقوم المستخدم بتنفيذها، ويمكن أن يكون الماكرو هو القالب الذي يستخدمه المبرمج لكتابة برنامجه بدلاً من البدء من الصفر.
ماذا سنفعل في هذا الدرس؟
كما قلنا فإن عملية تسجيل الماكرو تتم تلقائياً من قبل إكسل، حيث يتحسس ما تقوم به ويحوله إلى أوامر VBA يمكن إعادة تنفيذها لاحقاً. ويمكننا الاطلاع على هذه الأوامر والتعديل عليها وهذا ما سنقوم به هنا.
الماكرو الذي سنقوم بتسجيله يقوم بما يلي:
كتابة الاسم في خلية ما.
إضافة الوقت والتاريخ في الخلية التي تحتها.
تغيير صفة الخط لكل من الخليتين إلى غامق Bold.
تغيير حجم الخط للخليتين السابقتين إلى 16 نقطة.
بعد تسجيل الماكرو سنقوم بتجربته ثم سنقوم بالتعديل عليه يدوياً إن اقتضى الأمر، وسنرى كيف أنه بكبسة زر يمكننا تنفيذ مجموعة من الأوامر التي قد تأخذ وقتاً.
تسجيل الماكرو
قبل البدء تأكد من إظهار شريط أدوات المطور كما تعلمت في الدرس السابق. الشريط هو التالي:
الشكل (2-1): شريط أدوات المطور
قم بتشغيل إكسل وابدأ بورقة عمل جديدة
تأكد من تفعيل خيار Use Relative References من شريط أدوات المطور كما هو موضح في الشكل (2-1).
اختر أي خلية في ورقة إكسل.
من شريط أدوات المطور انقر على الزر Record Macro لبدء التسجيل وستظهر لك النافذة التالية:
الشكل (2-2): نافذة تسجيل ماكرو
أدخل اسماً للماكرو وليكن مثلاً: (NameAndTime)، ولك حرية اختيار الاسم، ولكن يجب أن يبدأ بحرف لا برقم وأن لا يحوي فراغات، كما أن بعض الرموز لا يمكن استخدامها فيه، ويجب أن لا يكون مستخدماً سابقاً في نفس ورقة العمل.
أدخل اختصاراً وليكن (N) أي (Shift + n) وبهذا لتنفيذ الماكرو لاحقاً يمكننا الضغط على Ctrl+Shift+N في لوحة المفاتيح.
تأكد من اختيار الخيار This Workbook لتخزين الماكرو في ورقة العمل الحالية، ويمكننا اختيار Personal Macro Workbook وهي ورقة عمل مخفية يتم فيها تخزين الماكروات والبرامج التي نريد تنفيذها دائماً، وهذه الورقة يتم تحميلها تلقائياً عند تشغيل إكسل.
حالياً ابق على الخيار This Workbook.
أدخل وصفاً للماكرو إن أحببت كما هو موضح في الشكل (2-2).
انقر على OK، وستختفي هذه النافذة ويصبح إكسل جاهزاً للتسجيل وينتظر منك أي حركة.
لاحظ تغير عنوان الزر Record Macro إلى Stop Recording، حيث أن الضغط عليه سيؤدي إلى توقف التسجيل.
لا تقلق من ناحية الوقت، فعملية التسجيل ليست كتسجيل الصوت إنما تسجيل للعمليات فطالما أنك لا تقوم بأي أمر في إكسل فإنه لن يقوم بإضافة أي أوامر للماكرو.
أدخل اسمك في الخلية الحالية.
حرك المؤشر إلى الخلية التي تحتها واكتب المعادلة التالية:
=NOW()
المعادلة السابقة تضيف التاريخ والوقت، وحتى نجعل القيمة ثابتة ولا تتغير في كل مرة يتم فيها إعادة حساب المعادلات في ورقة إكسل سنقوم بالتالي:
اختر هذه الخلية، ثم اضغط Ctrl+C لنسخ المحتويات إلى الحافظة.
من شريط أدوات Home اختر Paste Values من قائمة Paste.
اختر الخليتين السابقتين ثم غير تنسيق الخط إلى غامق (Bold) من شريط أدوات Home وكذلك حجم الخط إلى 16.
من شريط أدوات المطور انقر على Stop Recording، وهكذا نكون أنهينا تسجيل أول ماكرو.
ملاحظة: راجع الفيديو لاحقاً لمزيد من التوضيح.
تشغيل الماكرو
يمكننا تشغيل الماكرو عن طريق استدعائه إما بالضغط على اختصاره في لوحة المفاتيح أو عن طريق تشغيله من قائمة الماكروات (جمع ماكرو).
الطريقة الأولى: اختر أولاً الخلية التي تريد إضافة الاسم إليها، ثم اضغط على الاختصار وهو في حالتنا Ctrl+Shift+N، وستلاحظ أنه تم إضافة الاسم في الخلية الحلية والتاريخ والوقت الحاليين في الخلية التي تحتها.
قد يقول قائل فما الفرق بين هذه الطريقة وطريقة النسخ واللصق؟
الجواب أولاً أن هذا ماكرو بسيط وهو مجرد مثال، وثانياً في النسخ واللصق يتم نسخ التاريخ والوقت كما هما أما هنا فيتم وضع التاريخ والوقت في لحظة تنفيذ الماكرو.
الطريقة الثانية: افتح نافذة الماكروات إما باستدعائها عن طريق النقر على زر Macros في شريط أدوات المطور، أو بالضغط على الاختصار Alt+F8 في لوحة المفاتيح، فتظهر النافذة في الشكل (2-3).
الشكل (2-3): نافذة الماكروات
اختر الماكرو المطلوب ثم انقر على زر Run، وسيتم تنفيذ المطلوب.
ملاحظة: راجع الفيديو التالي لمزيد من التوضيح.
شرح طريقة تسجيل وتشغيل الماكرو عن طريق الفيديو
قد تحتاج لتشغيل الفيديو تثبيت مشغل فلاش (Adobe Flash Player) ويمكنك تحميله من موقع الشركة.
كما أنك قد تضطر للسماح لمتصفح الإنترنت الذي تستخدمه ليقوم بتشغيل ملفات الفيديو.
التعديل على برنامج الماكرو
سنتعرف الآن على البرنامج الذي قام إكسل بكتابته (أو تسجيله)، ولكن سندخل أولاً إلى بيئة تطوير VBA.
من نافذة الماكروات في الشكل (2-3)، اختر الماكرو ثم انقر على الزر Edit، فتظهر نافذة تحوي نص البرنامج (أو كود البرنامج)، وهذا البرنامج هو كالتالي:
الشكل (2-4)
الشكل (2-4): نص برنامج الماكرو، وقد قمت بالإشارة بإطار أحمر على الأسطر التي تهمنا
لاحظ أن البرنامج يبدأ بكلمة Sub ثم اسم البرنامج أو الماكرو وينتهي بكلمة End Sub، وهي تشير إلى (برنامج فرعي)، وبين هاتين الكلمتين يتم كتابة نص البرنامج.
السطر الذي يبدأ بالرمز ( ' ) لا يتم تنفيذه ويعتبر سطر ملاحظات، ويتم تلوينه باللون الأخضر.
يمكننا التعديل على هذا البرنامج كما نشاء، فإذا أردنا مثلاً تعديل الاسم أو حجم الخط دون إعادة تسجيل الماكرو، فيمكننا ذلك من هنا عن طريق التعديل على الأماكن المشار إليها بالإطار الأحمر، فمثلاً قم بتغيير الاسم من هنا وجرب تنفيذ الماكرو في ورقة الإكسل.
قم بقراءة البرنامج بالكامل، وحاول أن تتعرف على معنى كل سطر.
حفظ ملف الإكسل مع الماكرو
كما ذكرنا في الدرس الأول فإنه من دواعي الأمان في إكسل أن هناك تنسيقان للملفات، أحدهما بدون ماكرو وهو ذو لاحقة xlsx (أي لا يسمح بحفظ أي برنامج أو ماكرو في الملف) والآخر مع ماكرو وهو ذو لاحقة xlsm.
عند حفظ الملف اختر من قائمة Save as type في نافذة الحفظ الخيار Excel Macro-Enabled Workbook.
تذكر عند فتح الملف مرة أخرى أن تتبع خطوات تفعيل الماكرو كما ورد في الدرس الأول.
خاتمة
تعلمت في هذا الدرس كيف تقوم بتسجيل ماكرو وتنفيذه والتعديل عليه، وكذلك حفظ ورقة عمل الإكسل التي تحوي ماكرو.
http://www.jwdstructure.com/downloads/vba/excel-lesson02.zip