TOP

VBA-Lesson 7.2. الشروط (Conditions)

بالإضافة إلى التحقق من الشرطين If ... Then ... Else و Select Case ، يمكننا أيضًا استخدام عمليات التحقق التالية:

  • مقارنة بين أنواع البيانات (الدالات IsNumeric، IsDate، IsEmpty، Operator Is Nothing)
  • مقارنة أنواع المتغيرات (دالة VarType)
  • مقارنة التغذية النصية (عامل التشغيل Like)

  • فحص نوع البيانات

    IsNumeric (الوظيفة التي استخدمناها في الدرس السابق) تُرجع TRUE (TRUE) إذا كانت القيمة رقمًا ، و FALSE (FALSE) إذا - ليس رقمًا:

    If IsNumeric(Range("A1")) = True Then 'إذا كانت القيمة هي رقم ...
    

    ينتج عن الكود التالي نفس تأثير الرمز السابق (لا نحتاج إلى تضمين = True لأن البنية نفسها هي فحص شرطي):

    If IsNumeric(Range("A1")) = True Then 'إذا كانت القيمة هي رقم ...
    

    إذا أردنا التحقق مما إذا كانت القيمة ليست رقمًا ، فيمكننا القيام بذلك بطريقتين:

    If IsNumeric(Range("A1")) = False Then 'إذا كانت القيمة ليست رقمًا ...
    
    If Not IsNumeric(Range("A1")) Then 'إذا كانت القيمة ليست رقمًا ...
    

    لنلقِ نظرة على بعض الوظائف الأخرى المشابهة لـ IsNumeric:

    If IsDate(Range("A1")) Then 'إذا كانت القيمة هي التاريخ ...
    
    If IsEmpty(Range("A1")) Then 'إذا كانت فارغة ...
    
    If var_object Is Nothing Then 'إذا لم يتم تحديد الكائن ...
    

    التحقق من نوع المتغير

    لتنفيذ الأوامر بناءً على نوع المتغير ، سنحتاج إلى استخدام وظيفة VarType.

    ستظهر قائمة أنواع المتغيرات بمجرد إدخال علامة "=":

    If VarType(my_variable) = vbInteger Then 'إذا كان my_variable نوعًا متغيرًا Integer ...
    

    قيم الثوابت:

    ثابت قيمة
    vbEmpty0
    vbNull1
    vbInteger2
    vbLong3
    vbSingle4
    vbDouble5
    vbCurrency6
    vbDate7
    vbString8
    vbObject9
    vbError10
     If VarType(my_variable) = vbInteger Then 'إذا كان my_variable نوعًا متغيرًا Integer ...
     'مطابق لـ:
     If VarType(my_variable) = 2 Then 'إذا كان my_variable نوعًا متغيرًا Integer ...
    

    مقارنة موجزات النص (Like)

    قبل ذلك بقليل استخدمنا مقتطف الشفرة التالي:

    my_variable = "Example 12345"
    
    If my_variable = "Example 12345" Then '=> TRUE (TRUE)
    

    في هذه الحالة ، يكون الشريطان متماثلان ، ولكن إذا أردنا التحقق مما إذا كان المتغير يحتوي على القيمة "12345" ؛ دون النظر إلى الأحرف الأخرى ، يجب أن نستخدم الأمر Like والعامل * (العلامة النجمية) قبل وبعد القيمة التي نبحث عنها.

    يتم فك تشفير عامل التشغيل * (علامة النجمة) على النحو التالي: أي حرف أو مجموعة من الأحرف:

    my_variable = "Example 12345"
    
    If my_variable Like "* 12345 *" Then '=> TRUE (TRUE)
    

    عامل التشغيل # (التجزئة) يتم فك ترميزه على النحو التالي: أي حرف رقمي واحد من 0 إلى 9:

    my_variable = "Example 12345"
    
    If my_variable Like "Example 12###" Then '=> TRUE (TRUE)
    

    المشغل أو العامل؟ (علامة الاستفهام) يتم فك شفرتها على النحو التالي: أي حرف مفرد:

    my_variable = "Example 12345"
    
    If my_variable Like "?xample?1234?" Then '=> TRUE (TRUE)
    

    يمكننا أيضًا استخدام أحرف محددة أو مجموعة من الأحرف بنفس الطريقة:

    my_variable = "Example 12345"
    
    If my_variable Like "[DEF] xample 1234 [4-7]" Then '=> TRUE (TRUE)
    

    المشغل أو العامل! (علامة التعجب) المضافة بعد [تعني: أي حرف غير محاط بأقواس مربعة:

    my_variable = "Example 12345"
    
    If my_variable Like "[! GHIJ] xample 1234 [! 6-9]" Then '=> TRUE (TRUE)
    
    في هذا السياق ، لا تكافئ الأحرف الكبيرة نفس الأحرف الصغيرة. إذا كنت لا تريد التمييز بين الأحرف الكبيرة والصغيرة ، فما عليك سوى كتابة الأمر Option Compare Text في بداية الوحدة النمطية.

    قائمة أدوات YLC في LO Calc

    قائمة أدوات YLC في LO Calc

    قائمة أدوات YLC في Excel

    قائمة أدوات YLC في Excel