زر الجمع/القائمة المنسدلة في المكتب
-
29-09-2019 - |
سؤال
كيف يمكنني إضافة زر مزيج/انخفاض في المكتب (انظر أدناه). ويفضل مع الكود.
تحديث: إذا كان يساعد أي شيء ، فليس هناك حاجة إلى الكود.
المحلول
يمكنك القيام بذلك ، استنادًا إلى عناصر التحكم ActiveX التالية:
- التحكم في Microsoft Imagelist ، الإصدار 6
- Microsoft ImageCombobox Control ، الإصدار 6
يدويًا ، يمكنك تحديد "المزيد من عناصر التحكم ..." من شريط القائمة [Control Toolbox] وانقر نقرًا مزدوجًا على عناصر التحكم المذكورة للحصول عليها على الورقة. ضع combobox حيث تريد أن يكون ، وتجاهل موضع الخيال ، فهو مرئي فقط في وضع التصميم. الآن لديك اثنين من contros المدمجة المسمى
- ImageList1
- ImageCombo1
يقوم إدخال المكونين أيضًا بإنشاء إشارة إلى ... system32 mscomctl32.ocx.
ثُم أنت
- إضافة أيقونات (GIF ، BMP ، إلخ) إلى قائمة الصور
- قم بتعيين خاصية تصوير التحرير والسرد يدويًا على "ImageList1"
- قم بتعيين خاصية التحميل التلقائي في التحرير والسرد على True
الآن لديك مجموعة من الخطأ مع الخطأ ولكن لا أيقونات.
ثم تقوم بتنفيذ هذا الرمز
Sub FillCombo()
Dim SH As Worksheet, OO As OLEObjects, Idx As Integer
Set SH = ActiveSheet
Set OO = SH.OLEObjects
With OO("ImageCombo1").Object
.ComboItems.Clear
For Idx = 1 To OO("ImageList1").Object.ListImages.Count
.ComboItems.Add , , , Idx
Next Idx
End With
End Sub
لقد حاولت بجد إنشاء الكائنات بواسطة VBA ، ولكن يبدو أن ImageCombo يتصرف بشكل مختلف عند إنشائها على أنها
Set SH = ActiveSheet
Set OO = SH.OLEObjects
OO.Add "MSComctlLib.ImageComboCtl.2"
' .... etc ....
تم إنشاء التحرير والسرد ، ولكن لا يتم عرض سهم القائمة المنسدلة بغض النظر عن ما أقوم به ، يوضح كل ما أقوم به أن جميع عناصر ListView متصلة بدقة. يبدو أن الكثير من الزملاء يعانون من مشاكل مع هذا ActiveX ، وهناك الكثير من النشر على الشبكة.
قراءة متعمقة هنا