Skip to main content

Kutools for Office — مجموعة واحدة. خمسة أدوات. أنجز المزيد.

كيفية السماح بتحديد خانة اختيار واحدة فقط في مجموعة داخل Excel؟

Author Siluvia Last modified

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

A screenshot of a group of checkboxes in Excel where only one can be selected at a time


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

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

1. ابدأ بإدراج خانات الاختيار حيث تريد فرض اختيار واحد فقط. بالنسبة لهذا الحل، يجب عليك استخدام خانات الاختيار ActiveX Control، لأن خانات الاختيار Form Controls لا تدعم آلية التفعيل/التعطيل مباشرة. لإدراج خانات اختيار ActiveX، انتقل إلى علامة التبويب Developer > Insert > ActiveX Controls > Check Box. رتب كل خانات الاختيار ضمن المجموعة المطلوبة كما هو موضح أدناه:

A screenshot showing the insertion of ActiveX Control checkboxes in Excel

2. اضغط معًا على Alt + F11 لفتح نافذة Microsoft Visual Basic for Applications.

3. في نافذة المحرر، انقر فوق Insert > Class Module. هذه الخطوة تقوم بإنشاء وحدة فئة جديدة، وهي مطلوبة للتعامل مع الأحداث الخاصة بعدد من خانات الاختيار. باستخدام وحدة الفئة، يمكنك الرد على كل خانة اختيار يتم النقر عليها بشكل فردي، بغض النظر عن عدد خانات الاختيار الموجودة.

A screenshot showing the option to insert a Class Module in Excel VBA

4. ابحث عن وحدة الفئة الجديدة في لوحة Properties (عادةً على اليسار)، انقر عليها، وفي مربع (Name)، أعد تسميتها من القيمة الافتراضية (مثل Class1) إلى ClsChk. ثم انسخ والصق الكود التالي في نافذة الكود لهذه الوحدة. شاهد لقطة الشاشة كمرجع:

A screenshot of the Properties pane in VBA for renaming the class to ClsChk

VBA code1: حدد خانة اختيار واحدة فقط في كل مرة

Option Explicit
Public WithEvents Chk As MSForms.CheckBox
Private Sub Chk_Click()
Call SelOneCheckBox(Chk)
End Sub

Sub SelOneCheckBox(Target As Object)
Dim xObj As Object
Dim I As String
Dim n As Integer
If Target.Object.Value = True Then

    I = Right(Target.Name, Len(Target.Name) - 8)
    For n = 1 To ActiveSheet.OLEObjects.Count
      If n <> Int(I) Then
        Set xObj = ActiveSheet.OLEObjects.Item(n)
        xObj.Object.Value = False
        xObj.Object.Enabled = False
      End If
    Next
Else
    I = Right(Target.Name, Len(Target.Name) - 8)
    For n = 1 To ActiveSheet.OLEObjects.Count
      If n <> Int(I) Then
        Set xObj = ActiveSheet.OLEObjects.Item(n)
        xObj.Object.Enabled = True
      End If
    Next
End If
End Sub  

5. بعد ذلك، انقر فوق Insert > Module لإضافة وحدة كود قياسية. انسخ والصق الكود التالي في نافذة الوحدة. سيقوم هذا الكود بتهيئة و"ربط" جميع خانات الاختيار الخاصة بك مع معالج الأحداث الذي تم تعريفه أعلاه:

VBA code2: حدد خانة اختيار واحدة فقط في كل مرة

Dim xCollection As New Collection
Public Sub ClsChk_Init()
Dim xSht As Worksheet
Dim xObj As Object
Dim xChk As ClsChk
   Set xSht = ActiveSheet
   Set xCollection = Nothing
    For Each xObj In xSht.OLEObjects
        If xObj.Name Like "CheckBox**" Then
            Set xChk = New ClsChk
            Set xChk.Chk = CallByName(xSht, xObj.Name, VbGet)
            xCollection.Add xChk
        End If
    Next
    Set xChk = Nothing
End Sub

6. اضغط على F5 لتنفيذ الكود، والذي ينشط منطق التحديد الفردي لمجموعة خانات الاختيار. اختبر السلوك عن طريق تحديد أي من الخانات؛ يجب أن تصبح جميع الخانات الأخرى غير محددة ومعطلة فوراً. عند إلغاء التحديد الحالي، سيتم إعادة تفعيل جميع خانات الاختيار بحيث يمكنك القيام باختيار مختلف.

A screenshot of checkboxes in Excel where only one is enabled at a time after VBA code execution

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

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


مقالات ذات صلة:

أفضل أدوات الإنتاجية لمكتب العمل

🤖 Kutools AI Aide: أحدث ثورة في تحليل البيانات اعتمادًا على: التنفيذ الذكي |  توليد الأكواد |  إنشاء الصيغ المخصصة |  تحليل البيانات وتوليد الرسوم البيانية |  استخدام Kutools Functions...
ميزات شائعة: البحث، تمييز أو وضع علامة على المكررات | حذف الصفوف الفارغة | دمج الأعمدة أو الخلايا بدون فقدان البيانات | تقريب بدون الصيغة...
بحث متقدم: بحث بمعايير متعددة VLookup | بحث بقيم متعددة VLookup | بحث في عدة ورقات VLookup | مطابقة غامضة...
قائمة منسدلة متقدمة: إنشاء قائمة منسدلة بسرعة | قائمة منسدلة معتمدة | قائمة منسدلة متعددة الاختيارات...
مدير الأعمدة: إضافة عدد محدد من الأعمدة | نقل الأعمدة | تبديل حالة إظهار الأعمدة المخفية | مقارنة النطاقات والأعمدة...
ميزات مميزة: التركيز على الشبكة | عرض التصميم | شريط الصيغ المحسن | مدير أدوات المصنف وورقة العمل | مكتبة النص التلقائي | منتقي التاريخ | دمج البيانات | تشفير/فك تشفير الخلايا | إرسال البريد الإلكتروني حسب الجدول | مرشح متقدم | تصفية خاصة (تصفية الخلايا التي تحتوي على خط عريض/مائل/يتوسطه خط...)...
أفضل15 مجموعة أدوات:12 أداة نصية (إضافة نص، حذف الأحرف المحددة، ...) | أكثر من50 نوع رسم بياني (مخطط جانت، ...) | أكثر من40 صيغة عملية (حساب العمر بناءً على تاريخ الميلاد، ...) |19 أداة إدراج (إدراج رمز الاستجابة السريعة، إدراج صورة من المسار، ...) |12 أداة تحويل (تحويل إلى كلمات، تحويل العملة، ...) |7 أدوات دمج وتقسيم (دمج متقدم للصفوف، تقسيم الخلايا، ...) | ... والمزيد
استخدم Kutools بلغتك المفضلة – يدعم الإنجليزية، الإسبانية، الألمانية، الفرنسية، الصينية، وأكثر من40 لغة أخرى!

عزز مهاراتك في Excel باستخدام Kutools لـ Excel، واختبر كفاءة غير مسبوقة. Kutools لـ Excel يوفر أكثر من300 ميزة متقدمة لزيادة الإنتاجية وتوفير وقت الحفظ. انقر هنا للحصول على الميزة الأكثر أهمية بالنسبة لك...


Office Tab يجلب واجهة التبويب إلى Office ويجعل عملك أسهل بكثير

  • تفعيل تحرير وقراءة عبر التبويبات في Word، Excel، PowerPoint، Publisher، Access، Visio وProject.
  • افتح وأنشئ عدة مستندات في تبويبات جديدة في نفس النافذة، بدلاً من نوافذ مستقلة.
  • يزيد إنتاجيتك بنسبة50%، ويقلل مئات النقرات اليومية من الفأرة!

جميع إضافات Kutools. مثبت واحد

حزمة Kutools for Office تجمع بين إضافات Excel وWord وOutlook وPowerPoint إضافة إلى Office Tab Pro، وهي مثالية للفرق التي تعمل عبر تطبيقات Office.

Excel Word Outlook Tabs PowerPoint
  • حزمة الكل في واحد — إضافات Excel وWord وOutlook وPowerPoint + Office Tab Pro
  • مثبّت واحد، ترخيص واحد — إعداد في دقائق (جاهز لـ MSI)
  • الأداء الأفضل معًا — إنتاجية مُبسطة عبر تطبيقات Office
  • تجربة كاملة لمدة30 يومًا — بدون تسجيل، بدون بطاقة ائتمان
  • قيمة رائعة — وفر مقارنة بشراء الإضافات بشكل منفرد