سؤال

كيف يمكنني إضافة زر مزيج/انخفاض في المكتب (انظر أدناه). ويفضل مع الكود.

alt text

تحديث: إذا كان يساعد أي شيء ، فليس هناك حاجة إلى الكود.

هل كانت مفيدة؟

المحلول

يمكنك القيام بذلك ، استنادًا إلى عناصر التحكم ActiveX التالية:

  • التحكم في Microsoft Imagelist ، الإصدار 6
  • Microsoft ImageCombobox Control ، الإصدار 6

يدويًا ، يمكنك تحديد "المزيد من عناصر التحكم ..." من شريط القائمة [Control Toolbox] وانقر نقرًا مزدوجًا على عناصر التحكم المذكورة للحصول عليها على الورقة. ضع combobox حيث تريد أن يكون ، وتجاهل موضع الخيال ، فهو مرئي فقط في وضع التصميم. الآن لديك اثنين من contros المدمجة المسمى

  • ImageList1
  • ImageCombo1

يقوم إدخال المكونين أيضًا بإنشاء إشارة إلى ... system32 mscomctl32.ocx.

ثُم أنت

  1. إضافة أيقونات (GIF ، BMP ، إلخ) إلى قائمة الصور
  2. قم بتعيين خاصية تصوير التحرير والسرد يدويًا على "ImageList1"
  3. قم بتعيين خاصية التحميل التلقائي في التحرير والسرد على 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 ، وهناك الكثير من النشر على الشبكة.

قراءة متعمقة هنا

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top