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

كيف يمكن إلغاء تحديد مربع الاختيار الآخر تلقائيًا عند تحديد مربع اختيار في Excel؟

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

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


إلغاء تحديد مربع اختيار آخر عند تحديد مربع اختيار جديد باستخدام كود VBA

لتوضيح العملية، فكّر في الحالة الموضحة في الفيديو أعلاه: لديك عشرة مربعات اختيار تحمل الأسماءCheckBox1 حتىCheckBox10، مرتبة في ثلاث مجموعات تمثّل فئات شراء مختلفة.

✅ هيكل المجموعات:

  • المجموعة 1: CheckBox1، CheckBox2، CheckBox3
  • المجموعة 2: CheckBox4، CheckBox5، CheckBox6، CheckBox7
  • المجموعة 3: CheckBox8، CheckBox9، CheckBox10

ضمن كل مجموعة، يمكنك تحديد مربع اختيار واحد فقط في الوقت نفسه؛ فبمجرد تحديد مربع جديد، يتم إلغاء تحديد جميع المربعات الأخرى في نفس المجموعة تلقائيًّا—مما يُحاكي سلوك أزرار الراديو، لكن باستخدام مربعات الاختيار.

🧩 خطوات تطبيق حل VBA:

  1. افتح محرر VBA:انقر بزر الماوس الأيمن على لسان الورقة التي وضعت فيها مربعات الاختيار، ثم اخترعرض الكود (View Code).
  2. عرض قائمة الرمز
  3. الصق الكود التاليفي نافذة كود الورقة:
  4. Dim xBol As Boolean
    'Updated by Extendoffice
    
    Private Sub CheckBox1_Change(): SetCheckBoxes "CheckBox1": End Sub
    Private Sub CheckBox2_Change(): SetCheckBoxes "CheckBox2": End Sub
    Private Sub CheckBox3_Change(): SetCheckBoxes "CheckBox3": End Sub
    Private Sub CheckBox4_Change(): SetCheckBoxes "CheckBox4": End Sub
    Private Sub CheckBox5_Change(): SetCheckBoxes "CheckBox5": End Sub
    Private Sub CheckBox6_Click(): SetCheckBoxes "CheckBox6": End Sub
    Private Sub CheckBox7_Click(): SetCheckBoxes "CheckBox7": End Sub
    Private Sub CheckBox8_Click(): SetCheckBoxes "CheckBox8": End Sub
    Private Sub CheckBox9_Click(): SetCheckBoxes "CheckBox9": End Sub
    Private Sub CheckBox10_Click(): SetCheckBoxes "CheckBox10": End Sub
    
    Private Function SetCheckBoxes(mCheckBoxName As String)
        Dim xAllArr, xArrItem
        Dim xI, xJ
        If Not xBol Then Exit Function
        xAllArr = Array("CheckBox1,CheckBox2,CheckBox3", _
                       "CheckBox4,CheckBox5,CheckBox6,CheckBox7", _
                       "CheckBox8,CheckBox9,CheckBox10")
        For xI = LBound(xAllArr) To UBound(xAllArr)
            If InStr(xAllArr(xI), mCheckBoxName) > 0 Then
                xBol = False
                xArrItem = Split(xAllArr(xI), ",")
                For xJ = LBound(xArrItem) To UBound(xArrItem)
                    If xArrItem(xJ) <> mCheckBoxName Then
                        Me.OLEObjects(xArrItem(xJ)).Object.Value = False
                    End If
                Next
            End If
        Next
        xBol = True
    End Function
    
    Private Sub Worksheet_Activate(): xBol = True: End Sub
    Private Sub Worksheet_SelectionChange(ByVal Target As Range): xBol = True: End Sub
  5. أغلق محرر VBA (Alt + Q) وعُد إلى Excel لاختبار مربعات الاختيار.

📌 ملاحظات هامة:

  • تأكد من أن خصائص مربع الاختيارالاسم (وليس التسميات) تتطابق تمامًا مع الأسماء الموجودة في الكود.
  • يتم تحديد التجميعات في سطر المصفوفة:
    xAllArr = Array("CheckBox1,CheckBox2,CheckBox3", "CheckBox4,CheckBox5,CheckBox6,CheckBox7", "CheckBox8,CheckBox9,CheckBox10")
  • يعمل هذا الكود VBA فقط مع مربعات الاختيار من نوععناصر تحكم ActiveX، ولا يعمل مع عناصر تحكم النماذج (Form Controls).
  • يجب تمكين وحدات الماكرو لتشغيل هذا الأتمتة.

📺 عرض توضيحي:

🔍 نصائح استكشاف الأخطاء وإصلاحها:

  • تأكد من خلو أسماء مربعات الاختيار من التكرار.
  • تأكد من أن جميع مربعات الاختيار هيعناصر تحكم ActiveX.
  • يجب أن تستدعي إجراءات كل مربع اختيار دالةSetCheckBoxes بشكل صحيح.
  • تتطلب السيناريوهات العابرة للأوراق إجراء تعديلات إما عبر استخدام وحدات الفئات (Class Modules) أو من خلال التحكم المركزي.

💡 حل بديل:يمكنك استخدام أزرار الخيار (Option Buttons) منعناصر تحكم النماذج (Form Controls)للحصول على سلوك اختيار واحد مضمن. ومع ذلك، يوفّر استخدام VBA مع مربعات الاختيار مرونةً أكبر في التخطيطات المتقدمة والتحكم المنطقي.

✨ نصيحة:توفّر أدوات مثل Kutools لـ Excel واجهة رسومية لإدارة مربعات الاختيار، مما يسهّل إعدادها دون الحاجة إلى البرمجة.


عرض توضيحي: إلغاء تحديد مربع اختيار آخر عند تحديد مربع اختيار في Excel

 
Kutools لـ Excel: أكثر من 300 أداة مفيدة بين يديك! استمتع بميزات مدعومة بالذكاء الاصطناعي لإنجاز عملك بذكاء وسرعة أكبر!حمّل الآن!

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

🤖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 يومًا بكامل الميزات— بدون تسجيل، بدون بطاقة ائتمان
  • أفضل قيمة— وفِّر مقارنةً بشراء الإضافات بشكل منفصل