ما هو vba في excel؟ (من الأساسي إلى المتقدم)

ما هو VBA؟

VBA (Visual Basic for Applications) هي لغة برمجة تسمح لك بأتمتة كل شيء تقريبًا في Excel. باستخدام VBA، يمكنك الرجوع إلى كائنات Excel واستخدام الخصائص والأساليب والأحداث المرتبطة بها. على سبيل المثال، يمكنك إنشاء جدول محوري وإدراج مخطط وعرض مربع رسالة للمستخدم باستخدام ماكرو.

الشيء المجنون هو:

بالنسبة لجميع المهام التي تقوم بها يدويًا في دقائق، يمكن لـ VBA القيام بها في ثوانٍ، بنقرة واحدة، وبنفس الدقة. يمكنك أيضًا كتابة رموز VBA التي يمكن تشغيلها تلقائيًا عند فتح مستند أو مصنف أو حتى في وقت محدد.

اسمحوا لي أن أعرض لكم مثالا ملموسا:

كل صباح عندما أذهب إلى المكتب، أول شيء يجب علي فعله هو إنشاء جدول محوري للمبيعات الشهرية حتى تاريخه وتقديمه إلى مديري. وهذا يشمل نفس الخطوات، كل يوم. ولكن عندما أدركت أنه يمكنني استخدام VBA لإنشاء جدول محوري وإدراجه بنقرة واحدة فقط، فقد وفر لي 5 دقائق يوميًا.

رموز الماكرو لإنشاء جدول محوري

هذه هي الطريقة التي يعمل بها VBA

VBA هي لغة موجهة للكائنات وباعتبارها لغة موجهة للكائنات، في VBA نقوم ببناء أكوادنا بطريقة نستخدم فيها الكائنات ثم نحدد خصائصها.

بعبارات بسيطة، نقوم أولاً بتعريف الكائن ثم النشاط الذي نريد القيام به. هناك كائنات ومجموعات وأساليب وخصائص يمكنك استخدامها في VBA لكتابة التعليمات البرمجية الخاصة بك.

>لا تفوت هذا<

لنفترض أنك تريد أن تطلب من شخص ما أن يفتح صندوقًا. الكلمات التي ستستخدمها ستكون “افتح الصندوق”. إنها لغة إنجليزية واضحة، أليس كذلك؟ ولكن عندما يتعلق الأمر بـ VBA وكتابة ماكرو، فسيكون:

 Box.Open

كما ترون، الكود أعلاه يبدأ بالمربع الذي هو كائننا هنا، ثم استخدمنا طريقة “فتح” لهذا الغرض. لنكن أكثر تحديدًا، لنفترض أنك تريد فتح الصندوق ذو اللون الأحمر. ولهذا سيكون الكود:

 Boxes(“Red”).Open

في الكود أعلاه، المربعات هي المجموعة والمفتوحة هي الطريقة. إذا كان لديك عدة صناديق، فإننا نحدد مربعًا محددًا هنا. إليك طريقة أخرى:

 Box(“Red”).Unlock = True

في الكود أعلاه، المربعات هي المجموعة مرة أخرى وUnlock هي الخاصية المعينة على TRUE.

ما هو استخدام VBA في Excel؟

في Excel، يمكنك استخدام VBA لأشياء مختلفة. هنا بعض:

  • إدخال البيانات : يمكنك إدخال البيانات في خلية، أو نطاق من الخلايا. يمكنك أيضًا نسخ البيانات ولصقها من قسم إلى آخر.
  • أتمتة المهام : يمكنك أتمتة المهام التي تتطلب منك قضاء الكثير من الوقت. أفضل مثال يمكنني تقديمه هو استخدام ماكرو لإنشاء جدول محوري.
  • إنشاء وظيفة Excel مخصصة : باستخدام VBA، يمكنك أيضًا إنشاء وظيفة مخصصة معرفة من قبل المستخدم واستخدامها في ورقة العمل.
  • إنشاء الوظائف الإضافية : في Excel، يمكنك تحويل أكواد VBA الخاصة بك إلى وظائف إضافية ومشاركتها مع الآخرين أيضًا.
  • التكامل مع تطبيقات Microsoft الأخرى : يمكنك أيضًا دمج Excel مع تطبيقات Microsoft الأخرى. على سبيل المثال، يمكنك إدخال البيانات في ملف نصي.

أساسيات برمجة الإكسل

1. الإجراء

الإجراء في VBA عبارة عن مجموعة من الرموز أو سطر واحد من التعليمات البرمجية ينفذ نشاطًا محددًا.

  1. SUB : يمكن للإجراء الفرعي تنفيذ إجراءات ولكنه لا يُرجع قيمة (ولكن يمكنك استخدام كائن للحصول على تلك القيمة).
  2. الوظيفة : باستخدام إجراء الوظيفة، يمكنك إنشاء وظيفتك، والتي يمكنك استخدامها في جدول البيانات أو إجراءات SUB وFUNCTION الأخرى (راجع هذا: وظيفة VBA ).

2. المتغيرات والثوابت

تحتاج إلى متغيرات وثوابت لاستخدام القيم عدة مرات في التعليمات البرمجية.

  • المتغير : يمكن للمتغير تخزين قيمة، وله اسم، ويجب عليك تحديد نوع بياناته ويمكنك تعديل القيمة التي يخزنها. كما يوحي الاسم، فإن “VARIABLE” ليس له قيمة ثابتة. إنه مثل صندوق التخزين الذي يتم تخزينه في النظام.
  • الثابت : يمكن للثابت أيضًا تخزين قيمة، لكن لا يمكنك تغيير القيمة أثناء تشغيل التعليمات البرمجية.

3. أنواع البيانات

يجب عليك الإعلان عن نوع البيانات للمتغيرات والثوابت.

define data type

عندما تحدد نوع البيانات لمتغير أو ثابت، فهذا يضمن صحة بياناتك. إذا قمت بحذف نوع البيانات، فسيطبق VBA نوع البيانات المتغير على المتغير الخاص بك (هذا هو الأكثر مرونة)، ولن يخمن VBA نوع البيانات الذي يجب أن يكون عليه.

نصيحة: خيار VBA الصريح

4. الأشياء والخصائص والأساليب

تعتبر Visual Basic for Applications لغة موجهة للكائنات، وللحصول على أقصى استفادة منها؛ تحتاج إلى فهم كائنات Excel.

يحتوي المصنف الذي تستخدمه في Excel على كائنات مختلفة، ومع كل هذه الكائنات، هناك العديد من الخصائص التي يمكنك الوصول إليها والأساليب التي يمكنك استخدامها.

5. الأحداث

في كل مرة تقوم فيها بشيء ما في Excel، يعد ذلك حدثًا: أدخل قيمة في خلية، أو أدرج ورقة عمل جديدة، أو أدرج مخططًا. وفيما يلي تصنيف الأحداث حسب الكائنات:

  1. أحداث التطبيق: ترتبط هذه الأحداث بتطبيق Excel نفسه.
  2. أحداث المصنف: ترتبط هذه الأحداث بالإجراءات التي تحدث في المصنف.
  3. أحداث ورقة العمل: ترتبط هذه الأحداث بالإجراء الذي يحدث في ورقة العمل.
  4. أحداث المخطط: ترتبط هذه الأحداث بأوراق المخططات (التي تختلف عن أوراق العمل).
  5. أحداث نموذج المستخدم: ترتبط هذه الأحداث بالإجراء الذي يحدث مع نموذج المستخدم.
  6. أحداث OnTime: أحداث OnTime هي تلك التي يمكنها تشغيل التعليمات البرمجية في وقت محدد.
  7. أحداث OnKey: أحداث OnKey هي تلك التي يمكنها تشغيل رمز عند الضغط على مفتاح معين.

6.النطاق

كائن النطاق هو الطريقة الأكثر شيوعًا والأكثر شيوعًا للإشارة إلى نطاق في أكواد VBA الخاصة بك. تحتاج إلى الرجوع إلى عنوان الخلية، واسمحوا لي أن أقول لك بناء الجملة.

 Worksheets(“Sheet1”).Range(“A1”)

7. الشروط

مثل أي لغة برمجة أخرى، يمكنك أيضًا كتابة الأكواد لاختبار الشروط في VBA. يسمح لك بالقيام بذلك بطريقتين مختلفتين.

  • IF THEN‌ ELSE‌ : هذه عبارة IF التي يمكنك استخدامها لاختبار شرط ثم تنفيذ سطر من التعليمات البرمجية إذا كان هذا الشرط صحيحًا. يمكنك أيضًا كتابة شروط التعشيش باستخدام
  • حالة SELEC‌T‌ : في الحالة المحددة، يمكنك تحديد شرط ثم حالات نتائج اختبار مختلفة لتنفيذ أسطر مختلفة من التعليمات البرمجية المراد تنفيذها. إنها أكثر تنظيماً قليلاً من عبارة IF.

8. حلقات VBA

يمكنك كتابة الأكواد التي يمكنها تكرار إجراء ما وإعادة تكراره في VBA، وهناك عدة طرق لكتابة الأكواد البرمجية مثل هذه.

  • For Next : الخيار الأفضل لاستخدام For Next هو عندما تريد تكرار مجموعة من الإجراءات لعدد محدد من المرات.
  • For Each Next : إنه مثالي للاستخدام عندما تريد التكرار على مجموعة من الكائنات من مجموعة كائنات.
  • Do while Loop: الفكرة البسيطة وراء Do while Loop هي تنفيذ نشاط ما عندما يكون الشرط صحيحًا.
  • Do until Loop: في Do until Loop، ينفذ VBA حلقة ويستمر في تنفيذها إذا كان الشرط خطأ.

9. صندوق الإدخال وصندوق الرسائل

  • صندوق الإدخال : صندوق الإدخال هو وظيفة تعرض مربع الإدخال للمستخدم وتجمع الاستجابة.
  • صندوق الرسائل : يساعدك صندوق الرسائل على عرض رسالة للمستخدم، ولكن لديك خيار إضافة أزرار إلى مربع الرسالة للحصول على الرد من المستخدم.

10. الأخطاء

برنامج Excel سيئ الحظ عندما يتعلق الأمر بأخطاء البرمجة، وعليك التعامل معها مهما حدث.

  1. أخطاء بناء الجملة : تشبه هذه الأخطاء المطبعية التي ترتكبها أثناء كتابة الرموز، ولكن يمكن لـ VBA مساعدتك من خلال الإبلاغ عن هذه الأخطاء.
  2. أخطاء الترجمة: تحدث عندما تكتب تعليمات برمجية لتنفيذ نشاط ما، ولكن هذا النشاط غير صالح.
  3. أخطاء وقت التشغيل : يحدث خطأ RUNTIME أثناء تنفيذ التعليمات البرمجية. يقوم بإيقاف الكود ويعرض مربع حوار الخطأ.
  4. خطأ منطقي : إنه ليس خطأ ولكنه خطأ أثناء كتابة الكود ويمكن أن يسبب لك أحيانًا مشكلة أثناء العثور عليه وإصلاحه.

كتابة ماكرو (برنامج VBA) في برنامج Excel

لدي اعتقاد قوي أنه في البداية عندما يبدأ شخص ما البرمجة في برنامج Excel، يجب عليه كتابة المزيد والمزيد من الأكواد من الصفر. كلما زاد عدد الأكواد التي تكتبها من الصفر، زاد فهمك لكيفية عمل VBA.

ولكن يجب أن تبدأ بكتابة أكواد بسيطة بدلاً من القفز إلى الأكواد المعقدة. ولهذا السبب لا أريدك أن تفكر في أي شيء معقد الآن.

يمكنك أيضًا كتابة تعليمات برمجية للماكرو لإنشاء جدول محوري، لكن الآن لا أريدك أن تفكر إلى هذا الحد. دعونا نفكر في النشاط الذي تريد القيام به في جدول البيانات الخاص بك ويمكنك كتابة التعليمات البرمجية له.

  1. انتقل إلى علامة التبويب “المطور” وافتح محرر Visual Basic من الزر “Visual Basic”.
    visual-basic-button
  2. بعد ذلك، أدخل وحدة نمطية جديدة من “نافذة المشروع” (انقر بزر الماوس الأيمن فوق ← أدخل ← وحدة نمطية).
    insert-a-new-module
  3. بعد ذلك، انتقل إلى نافذة التعليمات البرمجية وقم بإنشاء ماكرو بالاسم “أدخل تم” (نقوم بإنشاء إجراء SUB)، كما هو موضح أدناه.
    code-window
  4. من هناك، تحتاج إلى كتابة بعض التعليمات البرمجية التي تحدثنا عنها للتو أعلاه. انتظر ثانية وفكر بهذه الطريقة: تحتاج إلى تحديد الخلية التي تريد إدراج القيمة فيها، ثم القيمة التي تريد إدخالها.
  5. أدخل مرجع الخلية، ولهذا تحتاج إلى استخدام كائن RANGE وتحديد عنوان الخلية هناك، كما هو موضح أدناه:
    cell-reference-range-object
  6. بعد ذلك، أدخل نقطة، وفي اللحظة التي تضيف فيها نقطة، سيكون لديك قائمة بالخصائص التي يمكنك تعيينها والأنشطة التي يمكنك القيام بها باستخدام النطاق.
    enter-a-dot
  7. من هنا تحتاج إلى تحديد خاصية “القيمة” وتعيين النص الذي تريد إدراجه في الخلية “A1” وعند القيام بذلك، سيبدو الرمز الخاص بك كما هو موضح أدناه.
    select-value
  8. أخيرًا، فوق سطر الرمز، أدخل النص (“يدخل هذا الرمز القيمة “تم” في الخلية A5).” هذا تعليق VBA يمكنك إدراجه لتحديد سطر التعليمات البرمجية الذي كتبته.
    enter-the-text-above-line-code
 Sub Enter_Done() 'this code enters the value “Done” in the cell A5 Range("A1").Value = "Done" End Sub

دعونا نفهم هذا…

يمكنك تقسيم هذا الرمز إلى قسمين مختلفين.

  • في الجزء الأول ، حددنا عنوان الخلية باستخدام كائن النطاق. وللإشارة إلى خلية باستخدام كائن نطاق، فإنك تحتاج إلى تغليف عنوان الخلية بعلامات اقتباس مزدوجة (يمكنك أيضًا استخدام الأقواس المربعة).
  • في الجزء الثاني، حددنا القيمة المراد إدخالها في الخلية. ما قمت به هو أنك قمت بتعيين خاصية القيمة للخلية A5 باستخدام “.Value”. بعد ذلك، الشيء التالي الذي حددته هو القيمة المتعلقة بخاصية القيمة . كلما قمت بتحديد قيمة (إذا كانت نصًا)، فيجب عليك وضع هذه القيمة بين علامتي اقتباس مزدوجتين.

أفضل طريقة لتعلم VBA

لقد قمت هنا بإدراج بعض البرامج التعليمية الأكثر روعة (وليس في أي تسلسل معين) والتي يمكن أن تساعدك على تعلم VBA في وقت قصير.

3. العمل مع جداول البيانات

4. العمل مع النطاق والخلايا

9. الجداول

10. الأخطاء

  • معالجة أخطاء VBA
  • خطأ في أتمتة VBA (الخطأ 440)
  • خطأ فبا 400
  • استدعاء إجراء VBA غير صالح أو خطأ في الوسيطة (الخطأ 5)
  • كائن VBA لا يدعم هذه الخاصية أو خطأ في الأسلوب (خطأ 438)
  • خطأ مطلوب لكائن VBA (خطأ 424)
  • خطأ نفاد الذاكرة في VBA (الخطأ 7)
  • خطأ تجاوز سعة VBA (الخطأ 6)
  • خطأ وقت تشغيل VBA (الخطأ 1004)
  • خطأ في تنفيذ فهرس VBA خارج النطاق (الخطأ 9)
  • خطأ في عدم توافق نوع VBA (الخطأ 13)

11. الوظائف

اضف تعليق

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *