الأربعاء، 11 يوليو 2012

Microsoft Excel VBA – Part 1



سلام الله عليكم ورحمته وبركاته

تأتى هذه التدوينة لا لتأصل نظريا لمفهوم 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 وكيفية توظيفها مع شرح لمفهوم الكائن ومايتعلق به من مصطلحات وتوابع ، والى ذلك الوقت دمتم فى رعاية الله وأمنه..


ليست هناك تعليقات:

إرسال تعليق

Microsoft Excel VBA – Part 1

سلام الله عليكم ورحمته وبركاته تأتى هذه التدوينة لا لتأصل نظريا لمفهوم VBA ...