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

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

2. اضغط معًا علىAlt+F11 لفتح نافذةMicrosoft Visual Basic for Applications.
3. في نافذة المحرر، انقر فوقإدراج > وحدة فئة. تقوم هذه الخطوة بإنشاء وحدة فئة جديدة، وهي ضرورية للتعامل مع أحداث خانات الاختيار المتعددة، حيث تتيح لك الاستجابة لكل نقر على خانة اختيار بشكل فردي، بغض النظر عن عددها.

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

ملاحظة:إذا قمت بإضافة أو حذف أي خانات اختيار من مجموعتك، فستحتاج إلى إعادة تشغيل كود VBA الأولي. ويرجع ذلك إلى أن معالجات الأحداث تُحدَّث في كل مرة يُنفَّذ فيها الكود، مما يضمن التعرُّف بشكل صحيح على أي تغييرات تطرأ على مجموعة العناصر بواسطة كود VBA الخاص بك.
تتميّز هذه الطريقة بأتمتتها الكاملة، إذ يتعذّر على المستخدمين تحديد خيارات متعددة عن طريق الخطأ. ومع ذلك، فهي تعمل فقط مع عناصر ActiveX، التي قد تكون محدودة بإصدار Excel، كما يتطلب استخدامها تفعيل وحدات الماكرو. علاوةً على ذلك، قد يستلزم توزيع ملفات العمل المحتوية على عناصر ActiveX أو ماكرو على مستخدمين آخرين أذونات أمان إضافية.
مقالات ذات صلة:
- كيف تُصفِّي البيانات في Excel بناءً على خانة اختيار؟
- كيف يمكن إخفاء خانة الاختيار تلقائيًا عند إخفاء الصف في Excel؟
- كيف يمكن تمييز خلية أو صف باستخدام خانة اختيار في Excel؟
- كيف تُنشئ قائمة منسدلة في Excel تتيح تحديد خانات اختيار متعددة؟
- كيف يمكن إدراج التاريخ ووضع طابع زمني في خلية عند تحديد خانة اختيار في Excel؟
أفضل أدوات الإنتاجية لمكتبتك
عزِّز مهاراتك في 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 وPowerPoint بالإضافة إلى Office Tab Pro
- برنامج تثبيت واحد، ترخيص واحد— الإعداد خلال دقائق (جاهز لـ MSI)
- يعمل بشكل أفضل معًا— إنتاجية ميسَّرة عبر تطبيقات Office
- تجربة مجانية لمدة 30 يومًا بكامل الميزات— بدون تسجيل، بدون بطاقة ائتمان
- أفضل قيمة— وفِّر مقارنةً بشراء الإضافات بشكل منفصل