سلام الله عليكم ورحمته وبركاته
تأتى هذه التدوينة
لا لتأصل نظريا لمفهوم VBA أو لتشرح كيفية استخدام تطبيق Microsoft excel ، وانما لتقدم شرحا عن هذه التقنية الرائعة بحق والتى يسمع عنها الكثيرون
من مستخدمى حزم مايكروسوفت المكتبية Microsoft Office عامة وتطبيقى Excel و Access خاصة على انها تقدم حلولا عملية لنقل هذه الملفات الى مستوى اكثر ديناميكية
ورحابة والمقصود بالديناميكية هنا هو جعل هذه
الملفات اكثر وظيفية ومرونة وتفاعلية مع المستخدم ، وذلك باضافة وحدات برمجية بلغة
التطبيقات VBA والتى قدمتها مايكروسوفت اعتمادا على لغة البرمجة
الاشهر Microsoft
Visual Basic والتى سبق وان استحوذت على اهتمام قطاع عريض من شرائح المطورين ، وجدير
بالذكر ايضا ان VBA لايقتصر استخدامه على تطبيقى مايكروسوفت سابقى الذكر
فقط وانما يمتد ليشمل MS Word و MS PowerPoint ايضا وفيما يعرف ب VBA-enabled
applications او التطبيقات ممكنة VBA مثل Photoshop او Corel Draw وان كان استخدام VBA فى بداية الامر مع تطبيق MS Excel فقط وفى الاصدار الخامس منه (MS Excel 2007 هو الاصدار الثانى عشر).
وينبغى للمتابعين ان يكونوا على دراية كافية بأساسيات
استخدام MS Excel لكى يتمكنوا من متابعة هذه التدوينات بفاعلية وسيساعد
كثيرا حقا لو امتدت هذه المعرفة لأساسيات البرمجة عامة ، وبداية VBA هى اختصار ل Visual Basic
for Application وهى لغة عامة للتطبيقات قدمتها مايكروسوفت بهدف دمجها مع هذه التطبيقات
لدعمها ولجعلها اكثر ديناميكية ووظيفية كما تحدثنا من قبل
،فنحن نستطيع استخدام هذه التطبيقات قائمة بذاتها بدون VBA بطريقة عادية جدا، والحديث عن VBA يأتى بنا لمصلح مهم آخر مرتبط به وهو Macro او ماكرو كما ينطق بالعربية ويمكن تعريفة على انه مجموعة مسجلة من الخطوات
والتى يمكن استدعائها بواسطة اختصار من لوحة المفاتيح بهدف تسهيل تنفيذ هذه
الخطوات ، وعلى سبيل المثال لنفترض اننا فى كل مرة نفتح فيها Worksheet نقوم بانشاء جدول بيانات وهى خطوة فى غاية اليسر كما نعلم ولكننا ننفذها
بتكرارية واستمرار وهنا يأتى دور الماكرو حيث كل ماسنفعله اننا سنسجل هذه الخطوات فى
ماكرو باسم CreatTable مثلا وباختصارمن لوحة المفاتيح وليكن T ونحفظة ، وبذلك يكون لدينا هذه الخطوات مسجلة فى كل مرة نريد اجرائها ماعلينا
سوى الضغط على Ctrl + T لتنفذ تلقائيا وتقوم بانشاء نفس الجدول سابق
التسجيل ، ومن ذلك نصل ان الماكرو ماهو الا برنامج بسيط يكتبه المستخدمون بأنفسهم.
ولكى يتضح هذا المفوم اكثر ويبين علاقته ب VBA هيا لنستكشفه بمثال
عملى سنوضح فيه كيفية تسجيل ماكرو وكيفية استرجاعه ايضا وستكون امثلتنا على تطبيق MS Excel 2010 فهيا بنا.
لنفترض اننا نعمل على ارقام لمبالغ مالية فى ملف وفى
كل مرة نحول هذه المبالغ ل Currency Format ونجعلها بالجنية المصرى ونخصص المنازل العشرية لرقمين
عشريين بعد العلامة ، ونتكرر هذه العملية كلما تعاملنا مع هذا الملف بنفس الطريقة وهنا
يأتى الحل الاسرع وهو باضافة ماكرو يقوم بالخطوات سالفة الذكر بسرعة وقياسية وبدون
المرور على كل هذه الخطوات وتكرارها.
1- نقوم بانشاء ملف Excel جديد ونسميه Macro.xlsx ونضيف الجدول التالى لاول Sheet1.
شكل 1 - جدول Sheet 1 |
2- نضغط على Record macro من اختيار Macros من تبويب View ويظهر كشكل 2.
شكل 2 - Record macro |
3- يظهر مربع Record Macro لنضيف اسم الماكرو واختصار استدعائة ومكان حفظة و وصف
الماكرو لاضافة اى ملاحظات نصية نريدها ، نضيف البيانات
كما توجد فى شكل 3.
شكل 3 - FormatCurrency |
اسم الماكرو FormatCurrency ونراعى ان تكون التسمية اسما واحدا غير منفصل بمسافات
والا كانت النتيجة رسالة خطأ تخبرنا بعدم صلاحية الاسم - وسنتكلم عن اعتبارات التسمية
فى تدوينة لاحقة باذن الله - ، ونختار مفتاح اختصار لاستدعاء الماكرو وليكن F نكتبه بالضغط على مفتاح Shift وذلك حتى نتمكن
من استدعاء الماكرو بالضغط على مفاتيح Ctrl + Shift + F ومنعا لاختلاط
وتضارب الوظائف المسبقة الوجود مع مفتاح Ctrl مثل Ctrl + F للبحث عن كلمات
فى النص ، واخيرا نضيف وصف نصى بسيط عن وظيفة الماكرو وتاريخ انشاءة ، ومع اعتبار الاختصار
والوصف من المدخلات الاختيارية تبقى التسمية فقط اجبارية وغير قابلة للتكرار فى التسمية
او مفاتيح الاختصار.
وعند الضغط على OK نلاحظ ظهور مربع
ازرق اسفل يسار التطبيق دالا على وضع التسجيل حاليا ويستمر وجوده طوال فترة تسجيل خطوات
التطبيق.
4- نقوم بتنفيذ خطوات تحويل صيغة النطاق الى ج. م.
وذلك بتحديد النطاق المراد تحويلة ثم بالضغط على Format cells من قائمة الاختيار كشكل 4.
شكل 4 - Format Cells |
5- نختار Currency من تبويب Number ونحدد العلامات العشرية ب 2 والرمز المالى ب ج. م.
كما نريد وكما يظهر فى الشكل 5.
شكل 5 - Currency |
6- ننهى تسجيل الماكرو بالضغط علىStop Recording من اختيار Macros من تبويب View او بالضغط على المربع الازرق فى اسفل يسار التطبيق
لايقاف تسجيل الخطوات للماكرو كشكل 6.
شكل 6 - Stop Recording |
7- الآن قد انتهينا من تسجيل خطواتنا مرة واحدة فى
ماكروFormatCurrency ونستطيع تطبيقها فى اى وقت
بمجرد تشغيل الماكرو ، ولكى نشغل الماكرو ماعلينا سوى أن نقف فى اى مكان فى Sheet1 ونستدعيه بالضغط على Ctrl + Shift + F أو بالذهاب الى تبويب View ومنه الى Macros ونضغط على View Macros لتظهر النافذة التاليه لنختار
منها اسم الماكرو المطلوب تنفيذه ثم الضغط على Run ، ولاننسى ان نغير صيغة النطاق
من العملة الى عام اى من Currency الى General حتى نستطيع أن نرى تأثير عمل الماكرو.
شكل 7 - Run Macro |
وبعد أن اتممنا انشاء ماكرو تشغيلة ولم يتبقى سوى
حفظة ، وهنا سنتحدث قليلا عن صيغ الملفات فملف MS Excel 2010 يحفظ بامتداد .xlsx وهذه الصيغة اساس ملفات MS Excel الى جانب الصيغة القديمة .xls ونجد اننا لانستطيع ان نحفظ
ملفاتنا المحتوية على ماكرو بهذه الصيغة نظرا لتغير اعتبارات الحفظ والامن واذا
حاولنا ان نتجاهل رسالة الخطأ عند حفظ الماكرو بهذه الامتدادات ستكون النتيجة هى
ضياع الماكرو عند اعادة فتح الملف مرة اخرى ، وهنا ياتى دور امتداد .xlsm والذى يهتم بحفظ الملفات ممكنة
الماكرو بالصيغة السابقة والتى تعتمد على اساس XML ، وذلك بالضغط على ايقونة File ثم على Save As وبكتابة اسم
الملف ثم اختيار Excel macro-Enabled Workbook(*.xlsm) والضغط على Save كشكل 8.
شكل 8 - Save Macro |
سيحفظ الملف بنجاح وعند
اعادة فتحة من جديد سنلاحظ وجود الماكرو ، ويجدر التنويه على اننا اذا قمنا بتغيير امتداد الملف
من .xlsm الى xlsx يدويا ستكون الاجابة على هذا التغيير هى برسالة خطأ عند محاولة فتح الملف.
اذن متى نستخدم الماكرو كحل فعال داخل التطبيق ؟
اولا: فى حالة وجود أعمال متكررة دائما وبنفس الطريقة
جزئيا او كليا وخاصة الاعمال التى تستغرق الكثير من الوقت فبمجرد استدعاء رمز الماكرو
يقوم الماكرو بتنفيذ العملية المخزنة داخلة فوار موفرا بذلك جهد ووقت تنفيذ هذه العملية
فى شكلها التقليدى.
ثانيا: فى حالة وجود عملية مخصصة تتكون من مجموعة
من الخطوات او العمليات المتتالية وليس لها بالضرورة اختصار فى قائمة او تبويب وقتها
يأتى الماكرو كحل رائع بإضافته كزر مخصص للتطبيق.
ثالثا: عندما يكون الماكرو حلا ذكيا للمهام البرمجية
والتى يمكن اضافتها وتطبيقها على الملفات والتى لايمكن عملها بالتطبيق منفردا.
والى هنا تنتهى التدوينة وستلحق بقادمة ان شاء
المولى لتتناول محتوى الماكرو الى جانب ماهية اكواد VBA وكيفية توظيفها مع شرح لمفهوم الكائن ومايتعلق
به من مصطلحات وتوابع ، والى ذلك الوقت دمتم فى رعاية الله وأمنه..