/ / متعددة خيارات مربع القائمة في Excel VBA

خيارات متعددة في مربع القائمة في Excel VBA

ال خاصية MultiSelect في Excel VBA يسمح للمستخدم بتحديد عناصر متعددة في مربع قائمة. شكل المستخدم الذي سنقوم بإنشائه يبدو كما يلي:

خيارات متعددة في مربع القائمة في Excel VBA

لإنشاء Userform ، قم بتنفيذ الخطوات التالية.

1. افتح محرر Visual Basic. إذا لم يكن Project Explorer مرئياً ، فانقر فوق View ، Project Explorer.

2. انقر فوق Insert ، Userform. إذا لم يظهر Toolbox تلقائيًا ، فانقر فوق View ، Toolbox. يجب إعداد الشاشة على النحو التالي.

إعداد شاشة Userform في Excel VBA

3. أضف مربعات القائمة (الأولى على اليسار ، والثانية على اليمين) ، وأزرار الأوامر ، ومربعات الاختيار (أولاً على اليسار ، والثاني في اليمين) ، وأزرار الإطار والخيارات (الأولى في الأعلى ، والثانية أسفل الأول ، وما إلى ذلك وهلم جرا). بمجرد اكتمال ذلك ، يجب أن تكون النتيجة متوافقة مع صورة Userform المعروضة سابقًا. على سبيل المثال ، قم بإنشاء عنصر تحكم مربع قائمة بالنقر فوق ListBox من Toolbox. بعد ذلك ، يمكنك سحب مربع قائمة في Userform. عند وصولك إلى إطار "تحديد نوع" ، تذكر أن ترسم هذا الإطار أولاً قبل وضع أزرار الخيارات الثلاثة فيه.

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

5. لإظهار Userform ، ضع زر أمر في ورقة العمل الخاصة بك وقم بإضافة سطر التعليمات البرمجية التالي:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

نحن الآن بصدد إنشاء Sub UserForm_Initialize. عند استخدام طريقة Show لـ Userform ، سيتم تنفيذ هذا الفرعي تلقائيًا.

6. افتح محرر Visual Basic.

7. في Project Explorer ، انقر بزر الماوس الأيمن فوق UserForm1 ، ثم انقر فوق عرض التعليمات البرمجية.

8. أولا ، أعلن المتغير ط من النوع صحيح. قم بتعريف المتغير في مقطع Declarations العامة (في الجزء العلوي من التعليمة البرمجية). بهذه الطريقة يجب عليك فقط أن تعلن المتغير مرة واحدة ويمكنك استخدامها في الغواصات المتعددة.

Dim i As Integer

9. اختر Userform من القائمة المنسدلة اليسرى. اختر Initialize من القائمة المنسدلة اليمنى.

10. أضف خطوط التعليمات البرمجية التالية:

Private Sub UserForm_Initialize()

With ListBox1
    .AddItem "Sales"
    .AddItem "Production"
    .AddItem "Logistics"
    .AddItem "Human Resources"
End With

OptionButton3.Value = True

End Sub

شرح: سيتم ملء مربع القائمة الأول ويتم تعيين زر الخيار الثالث كافتراضي.

لقد أنشأنا الآن الجزء الأول من Userform. على الرغم من أنه يبدو أنيقًا بالفعل ، فلن يحدث أي شيء بعد النقر على أزرار الأوامر أو عناصر التحكم الأخرى.

11. في Project Explorer ، انقر مرتين على UserForm1.

12. انقر مرتين على زر الإضافة.

13. قم بإضافة أسطر التعليمات البرمجية التالية:

Private Sub CommandButton1_Click()

For i = 0 To ListBox1.ListCount - 1
    If ListBox1.Selected(i) = True Then ListBox2.AddItem ListBox1.List(i)
Next i

End Sub

Explanation: حلقات Excel VBA من خلال مربع القائمة الأول (رقم فهرس القائمة صفر (0) للعنصر الأول في القائمة) ، وفي حالة تحديده ، يقوم باضافة العنصر الى مربع الكشف الثاني.

14. انقر مرتين على زر إزالة.

15. قم بإضافة الأسطر التعليمات البرمجية التالية:

Private Sub CommandButton2_Click()

Dim counter As Integer
counter = 0

For i = 0 To ListBox2.ListCount - 1
    If ListBox2.Selected(i - counter) Then
        ListBox2.RemoveItem (i - counter)
        counter = counter + 1
    End If
Next i

CheckBox2.Value = False

End Sub

Explanation: حلقات Excel VBA من خلال مربع القائمه الثاني ، و اذا تم تحديدها ، يتم ازالة العنصر. يحتوي المتغير العكسي على مسار عدد العناصر التي تمت إزالتها.

16. انقر مرتين على زر الخيار الأول.

17. قم بإضافة الأسطر التعليمات البرمجية التالية:

Private Sub OptionButton1_Click()

ListBox1.MultiSelect = 0
ListBox2.MultiSelect = 0

End Sub

18. انقر مرتين على زر الخيار الثاني.

19. قم بإضافة أسطر التعليمات البرمجية التالية:

Private Sub OptionButton2_Click()

ListBox1.MultiSelect = 1
ListBox2.MultiSelect = 1

End Sub

20. انقر مرتين على زر الخيار الثالث.

21. قم بإضافة أسطر التعليمات البرمجية التالية:

Private Sub OptionButton3_Click()

ListBox1.MultiSelect = 2
ListBox2.MultiSelect = 2

End Sub

تفسير: يمكن اختيار إعداد "تحديد النوع" بالنقر فوق أزرار الخيارات. تعطي صورة Userform المعروضة سابقًا وصفًا لكل إعداد. بدلاً من تكوين هذا الإعداد في وقت التشغيل ، يمكنك أيضًا تكوين هذا الإعداد في وقت التصميم. لتحقيق ذلك ، انقر بزر الماوس الأيمن فوق عنصر تحكم مربع قائمة ، ثم انقر فوق خصائص. قم بتعيين الخاصية MultiSelect إلى 0 - fmMultiSelectSingle، 1 - fmMultiSelectMulti أو 2 - fmMultiSelectExtented.

22. انقر مرتين على خانة الاختيار الأولى.

23. قم بإضافة أسطر التعليمات البرمجية التالية:

Private Sub CheckBox1_Click()

If CheckBox1.Value = True Then
    For i = 0 To ListBox1.ListCount - 1
        ListBox1.Selected(i) = True
    Next i
End If

If CheckBox1.Value = False Then
    For i = 0 To ListBox1.ListCount - 1
        ListBox1.Selected(i) = False
    Next i
End If

End Sub

Explanation: بتحديد خانة الاختيار الأولى ، يمكن تحديد كل البنود من مربع القائمة الأول / إلغاء تحديدها.

24. انقر نقرًا مزدوجًا فوق مربع الاختيار الثاني لإضافة نفس أسطر التعليمات البرمجية. فقط استبدال CheckBox1 مع CheckBox2 و ListBox1 مع ListBox2.

اقرأ أيضًا: