Кнопка комбинации / выпадающий в офисе
Как добавить комбинацию кнопка / выпадающий в офисе (см. Ниже). Желательно с кодом.
Обновление: если это помогает, код не нужен.
1 ответ
Вы можете сделать это, основываясь на следующих элементах управления ActiveX:
- Microsoft ImageList Control, версия 6
- Microsoft ImageComboBox Control, версия 6
Вручную вы выбираете "More Controls..." в строке меню [Control Toolbox] и дважды щелкаете по упомянутым элементам управления, чтобы получить их на своем листе. Расположите ComboBox там, где вы хотите, и не обращайте внимания на положение ImageList, оно отображается только в режиме конструктора. К настоящему времени у вас есть два встроенных контро
- ImageList1
- ImageCombo1
Вставка двух компонентов также создает ссылку на...\system32\MSCOMCTL32.OCX.
Затем вы
- вручную добавить значки (GIF, BMP и т. д.) в список изображений
- вручную установите для свойства Combo's ImageList значение "ImageList1"
- вручную установите для свойства Combo AutoLoad значение 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, есть много сообщений в сети.
Дальнейшее чтение здесь