الرئيسية | مايكروسوفت اوفيس | مايكروسوفت اكسل | إضافة أكواد الـ VBA في ملف الإكسل

إضافة أكواد الـ VBA في ملف الإكسل


من خلال مطالعة المواضيع المنشورة على الويب يقع تحت أيدينا أكواد تؤدي وظائف لا توجد بشكل إفتراضي في الإكسل مثل دالة تفقيط الأرقام أو كود يقوم بإرسال نسخة من الملف عبر الإيميل أو حصر أسماء الشيتات التي بالملف مع إضافة رابط Hyperlink لكل شيت؛ لإستخدام هذه الأكواد فلابد لنا من إضافتها للملف المستخدم لكي نتمكن من الإستفادة منها، وفي سبيل ذلك سنستعرض النقاط التالية:

  • إظهار التبويب Developer
  • الإنتقال إلى محرر الأكواد Visual Basic Editor
  • إضافة الكود و إستخدامه

إظهار القائمة Developer [ نسختي 2007 و 2010 ]

إذا كانت القوائم الظاهرة لديك لا تشتمل على القائمة Developer فإنك بحاجة لتفعيل أمر إظهار القائمة لأن الوضع الإفتراضي أنها تكون مخفية، ولإظهارها لابد من الوصول لإعدادت البرنامج (الإختصار Alt+F+I)

  • مايكروسوفت إكسل2007
    من القائمة Popular نقوم بتفعيل الإختيار Show Developer Tab in the Ribbon
    Add VBA Code 2 your workbook 11
  • مايكروسوفت إكسل 2010
    من القائمة Customize Ribbon نقوم بتفعيل الأمر Developer على الجانب الأيمن من شاشة إعدادت البرنامج
    Add VBA Code 2 your workbook 12

بعد تفعيل القائمة Developer ستجد أنه أصبح لديك قائمة جديدة كالتالي

الإنتقال إلى محرر الأكواد Visual Basic Editor

بعد إظهار القائمة Developer يمكننا الأن الإنتقال لمحرر الأكواد Visual Basic Editor ويختصر في VBE وذلك من خلال الأمر Visual Basic في Developer » Code » Visual Basic أو من خلال إستخدام (الإختصار ALT+F11)

في حالة إستخدامك لنسخة 2003 يمكنك الوصول لل VBE من خلال القائمة Tools » Macro » Visual Basic Editor

بذلك سننتقل لمحرر الأكواد كما في الشكل التالي

لا تقلق من هذه الواجهة الجديدة فبإذن الله سيتم إعداد موضوع خاص عن عناصر واجهة ال Visual basic Editor

إضافة الكود و إستخدامه

الأن وصلنا لمحرر الأكواد ولم يتبق لنا إلا إضافة الكود الذي لدينا ومن ثم تشغيله، ولإضافة الكود لابد من التعرف على المواضع التي يمكن إضافة الكود بها

  • شيت محدد في الملف Sheet
  • ملف الإكسل This Workbook
  • وحدة نمطية Module
  • يوزر فورم User Form
  • Class Module

لإضافة الكود في أحد المواضع (الكائنات Objects) السابقة نقوم بالنقر المزدوج Double Click عليها ليظهر لنا الموضع الذي سندرج الكود به وهو النافذة Code

لاحظ أن الوضع الإفتراضي للملف في بيئة VBE يشتمل على كائن لكل شيت في الملف Sheet1 , Sheet2 بالإضافة لكائن خاص بالملف ككل وهو ThisWorkbook لكننا هنا لن نُضيف الكود في هذه الكائنات بل سنقوم بإضافتها في كائن مستقل يُسمى بالوحدة النمطية Module.

لإضافة وحدة نمطية Moduleجديدة ننتقل للقائمة Insert ونختار Module بذلك سيتم إضافة Module جديد في الملف الحالي

الأن بالنقرالمزدوج Double Click على الوحدة النمطية الجديدة سيتم تفعيل نافذة الكود Code وبها ندرج الكود المراد إستعماله

Sub UnhideAll()
‘ Unhide all sheets at once
‘ Source :
‘ http://www.automateexcel.com/2004/12/14/excel_vba_unhide_all_worksheets/
 
Dim WS As Worksheet
For Each WS In Worksheets
WS.Visible = True
Next
End Sub

الكود السابق يقوم بإظهار جميع الشيتات المخفية Unhide مرة واحدة.

الأن نعود مرة اخرى للإكسل بواسطة الإختصار (alt+q)

لتنفيذ الكود نذهب لمربع الحوار Macros من خلال الضغط على (الإختصار Alt+F8) ثم نقوم بتحديد الكود الذي نريد تشغيله ثم نضعط على Run.

الأن نقوم بحفظ الملف بالإمتداد المناسب الذي يمكننا من حفظ الكود في الملف

  • الإمتداد XLS » إمتداد نسخة 2003 وبه سيتم حفظ كود الماكرو دون حذف الكود
  • الإمتداد XLSX » إمتداد ملف الإكسل الخاص ببنسخة 2007 وما يليها لكن لا يمكن إضافة أكواد في ملف بهذا الإمتداد
  • الإمتداد XLSM » إمتداد خاص بملفات الإكسل التي تشتمل على اكواد وهو أحد الإمتداد الجديدة المصاحبة لنسخة 2007 ومايليها.

شرح فيديو لعملية إضافة كود في ملف الإكسل

ملخص للموضوع في نقاط

  • الإنتقال للمحرر الأكواد VBE الإختصار هو Alt + F11
  • نحدد اين سنقوم بإدراج الكود (Sheet, ThisWorkbook, Module, User Form أوClass Module )
  • نقوم بالضغط المزدوج على الكائن الذين سندرج به الكود لتفعيل نفاذة الكود Code
  • نقوم بعمل لصق Paste للكود
  • نعود للإكسل من خلال الإختصار Alt + Q
  • نستخدم الكود من خلال إستعراض الأكواد المتاحة بالملف من خلال الإختصار Alt + F8

ملاحظة : لا تستخدم كود لا تعرف مصدره أو لا تثق في كاتبه حتى لا تفسد ملفاتك وجهازك.

شاهد أيضاً

إختصارات مايكروسوفت اكسل 01

إختصارات الاكسل كثيرة منها ما يتم من خلال لوحة المفاتيح Keyboard ومنها ما يتم من ...