Kombination Taste / Drop-Down in Büro
-
29-09-2019 - |
Frage
Wie kann ich eine Kombination Taste / Drop-Down in Büro hinzufügen (siehe unten). Vorzugsweise mit Code.
Update:. Wenn es irgendwelche hilft, wird Code nicht erforderlich
Lösung
Sie können es tun, basierend auf dem folgenden ActiveX-Steuerelemente:
- Microsoft Imagelist Control, Version 6
- Microsoft ImageComboBox Control Version 6
Manuell Sie „Weitere Steuerelemente ...“ wählen Sie aus der [Control Toolbox] Menüleiste und doppelklicken Sie auf die genannten Kontrollen sie auf Ihrem Blatt zu bekommen. Positionieren Sie die ComboBox, wo Sie es haben wollen, und ignorieren die Position des Abbildungsliste, ist es sichtbar nur im Entwurfsmodus. Inzwischen haben Sie zwei eingebettete CONTROS Namen
- ImageList1
- ImageCombo1
Das Einsetzen der beiden Komponenten erzeugt auch einen Verweis auf ... \ system32 \ MSCOMCTL32.OCX.
Dann Sie
- manuell Symbole hinzufügen (GIF, BMP, etc.) auf die Bilderliste
- manuell die Combo Abbildungsliste-Eigenschaft auf "ImageList1" gesetzt
- manuell die Combo AutoLoad- Eigenschaft auf True gesetzt
Mit dem jetzt haben Sie eine Combo mit dem Fehler, aber keine Symbole.
Dann führen Sie diesen Code
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
Ich habe hart versucht, die Objekte, die von VBA zu erstellen, aber die Imagecombo scheint anders zu verhalten, wenn sie erstellt wie
Set SH = ActiveSheet
Set OO = SH.OLEObjects
OO.Add "MSComctlLib.ImageComboCtl.2"
' .... etc ....
Die Combo erstellt wird, aber der Dropdown-Pfeil wird nicht angezeigt, egal, was ich tue, allthough Debugger zeigt, dass alle Elemente Listview sind ordentlich befestigt. Viele Kollegen scheinen Probleme mit dem ActiveX zu haben, es gibt Lasten der Buchung im Netz.
Weiterführende Literatur hier