كيفية استخدام Select Case Statement في VBA؟ (أمثلة)

Excel VBA حدد بيان الحالة

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

يساعد SELECT CASE في عملية صنع القرار. في هذا ، يتم استخدام تعبير واحد فقط لتقييم الحالات المحتملة المختلفة. يتم تحليل شروط متعددة بسهولة لتنفيذ الكود المطور. يتم استخدام بيان الحالة هذا كبيان بديل لـ ELSE IF لتقييم التعبيرات. يتم تصنيفها على أنها وظيفة منطقية مضمنة في Excel. لاستخدام هذه الوظيفة ، يتم إدخال الكود من خلال محرر Visual Basic المقدم تحت علامة تبويب المطور.

خاطئة

يتم استخدام مجموعات مختلفة من العبارات في Select Case. يجب اتباع الصيغة التالية لاستخدام هذا بشكل فعال. إنه مشابه لبيان التبديل المقدم في لغات البرمجة الأخرى مثل Java و C # و PHP.

 حدد [حالة] التعبير للاختبار [الحالة] قائمة ببيانات التعبير (الحالة 1 ، الحالة 2 ، الحالة 3 وما إلى ذلك ...) الحالة الأخرى (البيانات الأخرى) حدد النهاية 

يتم تقديم شرح للمصطلحات المرتبطة بالحالة المحددة على النحو التالي

تعبير للاختبار: مطلوب لتقييم الأنواع المختلفة من البيانات مثل عدد صحيح وسلسلة ومنطقية وكائن وحرف.

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

  • تحديد النهاية: يغلق منشئ تحديد حالة تعريف
  • البيانات: يتم تطوير العبارات باستخدام الحالة لتشغيل التعبيرات التي تم تقييمها لتحليل ما إذا كان هناك أي بيان مطابق
  • Else Statements: الغرض منه هو اختبار عبارة else عندما لا يتطابق تعبير الاختبار مع أي عبارات حالة.

كيفية استخدام بيان الحالة VBA Select؟

لا تعمل ميزة تحديد الحالة التي يوفرها VBA في أوراق العمل العادية. نحتاج إلى استخدام خيار Visual Basic ضمن علامة التبويب Developer. وظائف محددة من قبل المستخدم وترميز تم إنشاؤه في وضع المطور لتشغيل التطبيقات الصغيرة المختلفة في مجال الأعمال.

يتم استخدامه في المواقف التي تكون فيها عبارات if المتداخلة في Excel. إنه أفضل خيار للتعامل مع مجموعة متنوعة من بيانات الحالة. لاستخدام هذا الخيار بشكل فعال ، يجب تنفيذ المهام التالية

  • بادئ ذي بدء ، يحتاج إلى إنشاء ماكرو عن طريق وضع التحكم في زر الأمر في ورقة Excel.
  • بعد ذلك ، انقر بزر الماوس الأيمن على زر الأمر وحدد خيار عرض الكود
  • ضع الكود بين وظيفة زر الأمر و end sub
  • تصحيح التعليمات البرمجية لتحديد أي أخطاء في بناء الجملة.
  • قم بتجميع الكود للعثور على أخطاء الترجمة لتنفيذ البرنامج بنجاح
  • قم بتغيير قيم الإدخال لملاحظة النتائج المختلفة بناءً على معايير المطابقة
يمكنك تنزيل قالب Excel من VBA Select Case من هنا - VBA Select Case Excel Template

المثال رقم 1 - بيان حالة التحديد البسيط

هذا المثال لفهم حالة التحديد البسيطة للعثور على القيمة المطابقة.

رمز:

Selcaseexmample () فرعي خاص باهت A كعدد صحيح A = 20 حدد الحالة A الحالة 10 MsgBox "الحالة الأولى مطابقة!" الحالة 20 MsgBox "الحالة الثانية مطابقة!" الحالة 30 MsgBox "الحالة الثالثة مطابقة في Select Case!" حالة 40 ، MsgBox "الحالة الرابعة مطابقة في Select Case!" الحالة الأخرى ، MsgBox "لا شيء مطابق للحالة!" End حدد End Sub

نتيجة:

يتم استخدام عبارة الحالة الأربعة وبيان الحالة الأخرى لمقارنة تعبير الاختبار مع الحالات المختلفة. في المثال الحالي ، تتم مطابقة الحالة الثانية كمتغير A يتطابق مع 20.

مثال # 2 - الكلمة الرئيسية "إلى" لاختبار الدرجات

يوضح هذا المثال استخدام الكلمة الرئيسية "إلى" مع حالة التحديد.

رمز:

Selcasetoexample () خافت علامات الطلاب على أنها علامة طلابية صحيحة = InputBox ("أدخل العلامات بين 1 إلى 100؟") حدد علامات حالة الطالب الحالة من 1 إلى 36 MsgBox "فشل!" الحالة 37 إلى 55 حالة MsgBox "C Grade" من 56 إلى 80 MsgBox "B Grade" الحالة 81 إلى 100 MsgBox "A Grade" الحالة الأخرى MsgBox "Out of range" End حدد End Sub

نتيجة:

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

يتم عرض الإخراج مع مربع رسالة كما هو موضح في لقطة الشاشة أعلاه.

المثال رقم 3 - استخدام الكلمة الرئيسية "هي" مع حالة التحديد

يوضح هذا المثال استخدام الكلمة الرئيسية "Is" مع حالة التحديد.

رمز:

 Sub CheckNumber () Dim NumInput As Integer NumInput = InputBox ("الرجاء إدخال رقم") حدد Case NumInput Case Is = 200 MsgBox "لقد أدخلت رقمًا أكبر من أو يساوي 200" End حدد End Sub 

تساعد الكلمة الرئيسية "Is" في العثور على القيم المطابقة مع عبارات الحالة فقط. يقارن تعبير الاختبار بمدخل معين لإنتاج المخرجات.

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

مثال # 4 - باستخدام زر الأمر لتغيير القيم

تُستخدم حالة التحديد أيضًا مع زر الأمر عن طريق إنشاء ماكرو.

رمز:

 اللون الفرعي () لون خافت كلون سلسلة = نطاق ("A1"). قيمة تحديد لون الحالة الحالة "أحمر" ، "أخضر" ، نطاق "أصفر" ("B1"). القيمة = 1 حالة "أبيض" ، "أسود "،" Brown "Range (" B1 "). القيمة = 2 حالة" Blue "،" Sky Blue "Range (" B1 "). القيمة = 3 Case Else Range (" B1 "). القيمة = 4 End حدد End Sub 

كما هو موضح في البرنامج ، يتم أخذ المدخلات من خلايا ورقة العمل. يتم تنفيذ البرنامج بعد النقر فوق زر الأمر المستخدم من عناصر تحكم ActiveX. في هذا ، يتم استخدام فاصلة لدمج تعبيرات الاختبار.

عندما تتغير القيمة في الخلية A1 ، ينتج عن ذلك تغيير في الخلية B1 أيضًا عن طريق تشغيل ماكرو excel من خلال زر الأمر. يمكنك الرجوع إلى لقطة الشاشة الواردة أدناه: -

مثال # 5 - تحقق من رقم فردي أو زوجي

هذا المثال للمساعدة في التحقق من رقم زوجي أو فردي.

رمز:

 Sub CheckOddEven () CheckValue = InputBox ("أدخل الرقم") حدد الحالة (CheckValue Mod 2) = 0 Case True MsgBox "الرقم زوجي" Case False MsgBox "الرقم فردي" End Select End Sub 

تم تطوير الترميز كما هو موضح في لقطة الشاشة ويتم عرض الإخراج على النحو التالي عند إدخال رقم زوجي.

مثال # 6 - بيانات حالة التحديد المتداخلة

يعد التعشيش ميزة مفيدة للحالة المحددة ويتم عرض الطريقة التي يتم بها ذلك.

رمز:

 Sub TestWeekday () حدد حالة أيام الأسبوع (الآن) الحالة 1 ، 7 حدد حالة يوم الأسبوع (الآن) الحالة 1 MsgBox "اليوم هو الأحد" الحالة الأخرى MsgBox "اليوم هو السبت" End حدد الحالة الأخرى MsgBox "اليوم هو يوم من أيام الأسبوع" حدد النهاية الفرعية 

هنا يتم تحديد الحالة المحددة داخل حالة تحديد أخرى لاختبار يوم أو يوم من أيام الأسبوع أو عطلة نهاية الأسبوع. باستثناء الحالة 1 و 7 المتبقية كلها أيام الأسبوع (ملاحظة: الحالة 1 يوم الأحد والحالة 7 يوم السبت)

أشياء للذكرى

  • الكلمة الأساسية "Is" المستخدمة في بيان [case] و [case else] غير متساوية.
  • يجب استخدام عنصر تحكم ActiveX في تنفيذ البرنامج من خلال زر أمر يأخذ المدخلات ويعرض الإخراج في نطاق خلايا Excel.
  • من الصعب تشغيل البرامج في VBA إذا تم تعطيل وحدات الماكرو وتمكين وحدات الماكرو دائمًا للحصول على أفضل النتائج.
  • VBA حساس لحالة الأحرف ويجب إدخال المدخلات بدقة للحصول على نتائج أفضل.

$config[zx-auto] not found$config[zx-overlay] not found