فبا المنطقية Operators: AND، OR، NOT، إذا لم يكن في Excel VBA
⚡ ملخص ذكي
فبا المنطقية Operaتجمع هذه العملية عدة شروط في نتيجة واحدة صحيحة أو خاطئة. تشرح هذه الصفحة عوامل AND وOR وNOT مع أمثلة عملية لأزرار الأوامر، وجدول الحقيقة الكامل، وعوامل XOR وEqv وImp الأقل شهرة.

إكسل VBA المنطقي Operaالاختصاصات
لنفترض أنك تريد معالجة طلب أحد العملاء. لذلك، عليك أولاً التحقق من وجود المنتج المطلوب أم لا. إذا كان موجودًا، عليك أيضًا التحقق من كفاية الكمية المتوفرة. تكون العوامل المنطقية مفيدة في مثل هذه الحالات. تُستخدم العوامل المنطقية لتقييم أكثر من شرط.
كل شرط على حدة مبني من عوامل المقارنة ويعيد القيمة True أو False. ثم يقوم عامل منطقي بدمج هذه النتائج في إجابة نهائية واحدة.
يتم سرد العوامل المنطقية الرئيسية في Excel VBA AND وOR وNOT في الجدول أدناه:
| S / N | المُشغل | الوصف | مثال | الناتج |
|---|---|---|---|---|
| 1 | لأي لبس | و: يستخدم للجمع بين أكثر من شرط. إذا كانت جميع الشروط صحيحة، ويتم تقييمها على أنها صحيحة. إذا كان أي من الشرط خطأ، ويتم تقييمه على أنه خطأ | إذا كان (1 = 1) و (0 = 1) فإن | زائف |
| 2 | OR | أو: يستخدم للجمع بين أكثر من شرط. إذا تم تقييم أي من الشروط على أنه صحيح، فسيتم إرجاع OR صحيحًا. إذا كانت كلها كاذبة، أو ترجع كاذبة | إذا كان (1 = 1) أو (5 = 0) | صحيح |
| 3 | لا | NOT: هذه تعمل كدالة عكسية. إذا كان الشرط صحيحا يعود كاذبا، وإذا كان الشرط خاطئا يعود صحيحا. | إذا لم يكن (0 = 0) | زائف |
يسهل تذكر الأوصاف الثلاثة المذكورة أعلاه باعتبارها شبكة واحدة من المدخلات والنتائج.
جدول الحقيقة للمنطق في VBA Operaالاختصاصات
يسرد جدول الحقيقة جميع تركيبات المدخلات والنتيجة التي يُرجعها كل عامل. قراءته مرة واحدة تُزيل التخمين من أي شرط تكتبه لاحقًا.
| الشرط أ | الشرط ب | أ و ب | ا او ب | ليس أ |
|---|---|---|---|---|
| صواب | صواب | صواب | صواب | خطأ |
| صواب | خطأ | خطأ | صواب | خطأ |
| خطأ | صواب | خطأ | صواب | صواب |
| خطأ | خطأ | خطأ | خطأ | صواب |
هناك نمطان يستحقان الحفظ. لأي لبس ينتج القيمة "صحيح" في صف واحد فقط من أصل أربعة صفوف، مما يؤدي إلى تضييق نطاق الاختيار. OR ينتج قيمة خاطئة في صف واحد فقط، لذا فهو يوسع صفًا واحدًا. لا يأخذ شرطًا واحدًا بدلاً من شرطين، ولهذا السبب يحتوي على عمود واحد خاص به.
فبا المنطقية Operaمثال على مصدر التورات Code
من أجل التبسيط، سنقوم بمقارنة الأرقام المشفرة.
أضف أزرار ActiveX إلى الورقة من "خيار الإدراج".
اضبط الخصائص كما هو موضح في الصورة أدناه

يوضح الجدول التالي الخصائص التي تحتاج إلى تغييرها والقيم التي تحتاج إلى تحديثها أيضًا.
| S / N | السيطرة | الممتلكات | بعد التخفيض |
|---|---|---|---|
| 1 | زر الأوامر1 | الاسم | btnAND |
| شرح | لأي لبس Operator (1 = 1) And (0 = 0) | ||
| 2 | زر الأوامر2 | الاسم | btnOR |
| شرح | OR Operaتور (1 = 1) أو (5 = 0) | ||
| 3 | زر الأوامر3 | الاسم | ليس |
| شرح | لا Operaليس (0 = 0) |
أضف الكود التالي إلى btnAND_Click
Private Sub btnAND_Click() If (1 = 1) And (0 = 0) Then MsgBox "AND evaluated to TRUE", vbOKOnly, "AND operator" Else MsgBox "AND evaluated to FALSE", vbOKOnly, "AND operator" End If End Sub
فبا إذا و Operaتور
- "إذا (1 = 1) و(0 = 0) إذن" تستخدم عبارة if عامل AND المنطقي لدمج شرطين (1 = 1) و(0 = 0). إذا كان كلا الشرطين صحيحين، فسيتم تنفيذ الكود الموجود أعلى الكلمة الأساسية "Else". إذا لم يكن كلا الشرطين صحيحين، فسيتم تنفيذ الكود الموجود أسفل الكلمة الأساسية "Else".
كلا الشرطين صحيحان هنا، لذا فإن النقر على الزر يُظهر "و تم تقييمها على أنها صحيحة".
أضف الكود التالي إلى btnOR_Click
Private Sub btnOR_Click() If (1 = 1) Or (5 = 0) Then MsgBox "OR evaluated to TRUE", vbOKOnly, "OR operator" Else MsgBox "OR evaluated to FALSE", vbOKOnly, "OR operator" End If End Sub
فبا إذا أو Operaتور
- "إذا (1 = 1) أو (5 = 0) إذن" تستخدم عبارة if عامل الربط المنطقي OR لدمج شرطين (1 = 1) أو (5 = 0). إذا كان أي من الشرطين صحيحًا، يتم تنفيذ الكود أعلاه. أما إذا كان كلا الشرطين خاطئًا، فيتم تنفيذ الكود أدناه.
الشرط الأول صحيح والثاني خاطئ، لذلك لا تزال عملية OR تُرجع القيمة true وتقرأ الرسالة "تم تقييم OR إلى TRUE".
أضف الكود التالي إلى btnNOT_Click
Private Sub btnNOT_Click() If Not (0 = 0) Then MsgBox "NOT evaluated to TRUE", vbOKOnly, "NOT operator" Else MsgBox "NOT evaluated to FALSE", vbOKOnly, "NOT operator" End If End Sub
VBA إذا لم يكن كذلك Operaتور
- "إذا لم يكن (0 = 0) إذن" تستخدم دالة If Not في VBA عامل النفي المنطقي NOT لنفي نتيجة شرط جملة if. الشرط الداخلي (0 = 0) صحيح، لذا يحوله Not إلى خطأ، ويتم تنفيذ الكود أسفل الكلمة المفتاحية 'Else'. لو كان الشرط الداخلي خاطئًا، لكان Not قد جعله صحيحًا، ولتم تنفيذ الكود أعلى 'Else' بدلًا من ذلك.
تختبر هذه الأزرار الثلاثة قيمة ثابتة. تُقرأ الشروط الحقيقية من ورقة العمل وتجمع بين مجموعتي المعاملات.
كيفية الجمع بين المنطق والمقارنة Operaالاختصاصات
نادراً ما تختبر وحدة الماكرو الإنتاجية رقماً ثابتاً. فهي تقرأ قيمة، وتقارنها، ثم تجمع عدة مقارنات في قرار واحد. لا تُقرّ وحدة الماكرو أدناه الطلب إلا إذا كان المنتج متوفراً، والكمية كافية، وحساب العميل غير معلّق.
Sub ApproveOrder() Dim QtyOnHand As Long Dim QtyOrdered As Long Dim OnHold As Boolean QtyOnHand = Sheet1.Range("B2").Value QtyOrdered = Sheet1.Range("B3").Value OnHold = Sheet1.Range("B4").Value ' All three parts must hold for the order to pass If (QtyOrdered > 0) And (QtyOnHand >= QtyOrdered) And Not OnHold Then Sheet1.Range("B5").Value = "Approved" Else Sheet1.Range("B5").Value = "On hold" End If End Sub
ثلاث قواعد تحافظ على قابلية قراءة الشرط المركب وصحته.
- ضع كل مقارنة بين قوسين: يقوم VBA بتقييم عوامل المقارنة قبل العوامل المنطقية، لكن الأقواس تجعل المجموعةping من الواضح أن ذلك يمنع حدوث خطأ عندما تتفاقم الحالة لاحقًا.
- انتبه إلى أسبقية "و" على "أو": أ أو ب و ج يُقرأ على النحو التالي أ أو (ب و ج)إذا كنت تقصد (أ أو ب) و ج، الأقواس إلزامية.
- لا ينطبق على قيمة منطقية، ولا على رقم: غير معلق يقرأ بشكل طبيعي. تجنب ليس 5، لأن دالة النفي (Not) تقوم بعملية منطقية على الأرقام وتعيد -6 بدلاً من خطأ (False).
⚠️ تحذير: لا يتسبب VBA في حدوث اختصار. إذا كان (ws Is Nothing) أو (ws.Name = “Data”)، يستمر الجزء الثاني في العمل حتى عندما يكون الجزء الأول صحيحًا، مما يؤدي إلى ظهور خطأ وقت التشغيل 91. قسّم هذه الحواجز إلى عبارات If متداخلة.
Xor و Eqv و Imp Operaتورس في VBA
تغطي عبارات AND و OR و NOT تقريبًا كل حالة يومية، لكن VBA توفر ثلاثة عوامل منطقية أخرى تعبر أحيانًا عن قاعدة بشكل أكثر وضوحًا من مجموعة من عبارات If.
| المُشغل | تُرجع القيمة True عندما | مثال | الناتج |
|---|---|---|---|
| XOR | يتحقق شرط واحد فقط من الشرطين، وليس كلاهما معًا. | (1 = 1) Xor (5 = 0) | صواب |
| المعادلة | كلا الشرطين لهما نفس القيمة، إما كلاهما صحيح أو كلاهما خاطئ | (1 = 1) معادلة (2 = 2) | صواب |
| عفريت | الشرط الأول يستلزم الشرط الثاني؛ فقط "صحيح يستلزم خطأ" يكون خاطئًا | (1 = 1) Imp (5 = 0) | خطأ |
تُعدّ XOR الأكثر عمليةً من بين الثلاثة. فهي تُناسب قاعدةً مثل "ينطبق الخصم على الموظف أو عضو برنامج الولاء، ولكن لا ينطبق على من يجمع بينهما". أما Eqv و Imp فتظهران غالبًا في البرامج القديمة وفي تمارين المنطق، لذا فإنّ فهمهما أهم من كتابتهما.
قم بتنزيل Excel الذي يحتوي على الكود أعلاه
