KutoolsforOffice — حل واحد، خمس أدوات قوية.تحقيق المزيد بجهد أقل.

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

المؤلفSiluviaتاريخ التعديل

في بعض تطبيقات Excel، قد تحتاج إلى تمكين المستخدمين من تحديد خيار واحد فقط من مجموعة خانات اختيار—مُقلِّدًا بذلك سلوك أزرار الراديو. فعلى سبيل المثال، كما يظهر في لقطة الشاشة أدناه، عند تحديد خانة اختيار في الصف 2، يتم تعطيل جميع الخانات الأخرى في المجموعة فورًا، مما يضمن اختيار خيار واحد فقط في كل مرة. يُعد هذا القيد مفيدًا جدًّا في نماذج الاستبيانات، أو قوائم الاختيار ذات الإجابة الوحيدة، أو لوحات المعلومات التي تهدف فيها إلى منع تحديد إجابات متعددة. ولتنفيذ هذه الوظيفة مباشرةً في Excel، يلزم استخدام تقنيات معيَّنة مثل كود VBA. وتقدِّم هذه المقالة حلولًا عملية لتحقيق تأثير «الاختيار الواحد» باستخدام خانات الاختيار في Excel، مع إرشادات خطوة بخطوة واعتبارات أساسية للاستخدام الفعّال.

لقطة شاشة لمجموعة من خانات الاختيار في Excel حيث يمكن تحديد واحدة فقط في كل مرة


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

يمكنك اعتماد النهج التالي المبني على VBA لضمان إمكانية تحديد خانة اختيار واحدة فقط في المجموعة في كل مرة. ويُعد هذا الحل مثاليًا عندما تسعى إلى تجربة آلية سلسة—خاصةً في القوالب المعقدة أو عند الحاجة إلى التحكم الدقيق في منطق التفعيل والتعطيل.

1. ابدأ بإدراج خانات الاختيار في المكان الذي تريد فيه فرض اختيار واحد فقط. لهذا الحل، يجب أن تستخدمخانات اختيار عناصر ActiveX، لأن خانات اختيار عناصر النموذج (Form Controls) لا تدعم آلية التفعيل أو التعطيل مباشرةً. ولإدراج خانات اختيار ActiveX، انتقل إلىالمطوّر > إدراج > عناصر ActiveX > مربع اختيار. ثم رتّب جميع خانات الاختيار ضمن مجموعتك المطلوبة كما هو موضح أدناه:

لقطة شاشة تُظهر إدراج خانات اختيار ActiveX Control في Excel

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

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

لقطة شاشة تُظهر الخيار لإدراج وحدة فئة (Class Module) في Excel VBA

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

لقطة شاشة لجزء الخصائص (Properties) في VBA لإعادة تسمية الفئة إلى ClsChk

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

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. بعد ذلك، انقر فوقإدراج > وحدةلإضافة وحدة كود قياسية. انسخ والصق الكود التالي في نافذة الوحدة. سيقوم هذا الكود بتهيئة جميع خانات الاختيار الخاصة بك و«ربطها» بمعالج الأحداث المعرّف أعلاه:

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

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 لتنفيذ الكود، الذي يفعّل منطق الاختيار الواحد لمجموعة خانات الاختيار الخاصة بك. جرّب السلوك بتحديد أيٍّ من الخانات؛ فورًا ستُلغى تحديدات جميع الخانات الأخرى وتصبح معطَّلة. وعند إلغاء تحديد الخيار الحالي، تُفعَّل جميع خانات الاختيار مجددًا لتتمكن من اختيار خيار مختلف.

لقطة شاشة لخانات الاختيار في Excel حيث تكون واحدة فقط مفعّلة في كل مرة بعد تنفيذ كود VBA

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

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


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

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

🤖KUTOOLS AI مساعد: ثوّر تحليل البيانات استنادًا إلى:التنفيذ الذكي   |  إنشاء الكود|  إنشاء الصيغ المخصصة  |  تحليل البيانات وإنشاء المخططات البيانية|  استدعاء الوظائف المحسنة
الميزات الشائعة:البحث، التمييز أو وضع علامة على المكررات   |  حذف الصفوف الفارغة   |  دمج الأعمدة أو الخلايا دون فقدان البيانات   |  التقريب بدون استخدام الصيغة...
بحث متقدم:VLookup متعدد المعايير  |  VLookup متعدد القيم  |   VLookup عبر أوراق متعددة   |   مطابقة غامضة....
قائمة منسدلة متقدمة:إنشاء قائمة منسدلة بسرعة   |  قائمة منسدلة تابعة   |  قائمة منسدلة متعددة الاختيار....
مدير الأعمدة:إضافة عدد محدد من الأعمدة|نقل الأعمدة|تبديل حالة ظهور الأعمدة المخفية|مقارنة النطاقات والأعمدة...
ميزات مميزة:التركيز على الشبكة   |  عرض التصميم   |شريط الصيغ المحسن   | مدير الدفتر والورقة   |  مكتبة الموارد(نص تلقائي)|  أداة اختيار التاريخ   |  تجميع ورقات العمل  |  تشفير/فك تشفير الخلايا   | إرسال رسائل البريد الإلكتروني حسب القائمة   |  مرشح متقدم   |   تصفية خاصة(تصفية الخلايا التي تحتوي على خط عريض/مائل/يتوسطه خط...) ...
أفضل 15 مجموعات الأدوات:12 أدواتالنصوص(إضافة نص،حذف الأحرف المحددة، ...)|   50+أنواعالمخططات البيانية(مخطط جانت، ...)|   40+ صيغعملية(حساب العمر بناءً على تاريخ الميلاد، ...)|   19 أدواتالإدراج(إدراج رمز QR،إدراج صورة من المسار، ...)|   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.

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