Подведу итог темы:
Вероятно существуют два варианта раскрыть комбик.
1. Послать ему сообщение с помощью SendMessage
2. Выделить комбик и послать нажатие клавиши Down
Первый вариант у меня закончился на получении хендла нашего комбика. Увы, пока не нашел как.
Вариант 2:
Создадим панель инструментов и комбик на ней
[vba]Код
Set MyBar = CommandBars.Add(ПанельИмя, msoBarTop, , True)
Set MyBox = MyBar.Controls.Add(msoControlComboBox)
MyBox.Caption = "Название"
MyBox.OnAction = "КомбикДействие"
[/vba]
Чтобы раскрыть комбик, можно сделать так:
[vba]Код
MyBox.SetFocus
SendKeys "{DOWN}"
[/vba]
Но если требуется сделать это из процедуры КомбикДействие, то вероятно будет ошибка 'SetFocus' of object '_CommandBarComboBox' failed . Обойти можно к примеру так:
[vba]Код
Sub КомбикДействие()
...
...
...
Application.OnTime Now + TimeValue("00:00:01"), "РаскрытьСписок"
End Sub
Sub РаскрытьСписок()
MyBox.SetFocus
SendKeys "{DOWN}"
End Sub
[/vba]
Ну вот как то так. Буду рад если кому нибудь пригодится. Все сказанное выше справедливо для Excel 2003.