Здравствуйте!
Помогите, пожалуйста, уважаемые коллеги.
Дело в следующем.
Есть меню (MenuBar), схематично выглядит примерно так

.
Нужно, чтобы
при нажатии на "Возможность 1" или "Возможность 2" выполнялись определенные действия (в частности, изменение некоторых объектов на экране, и т. п.),
но меню при этом не закрывалось, фокус оставался бы на выбранном пункте.
Отбросим все, кроме необходимости оставлять меню открытым в нужно положении.
При попытке выполнить SetFocus для пункта меню, отличного от верхнего уровня, возникает

хотя метод этот у этих объектов вроде есть.
Я не придумала ничего лучшего, как сделать так (здесь все упрощаю, только суть):
для "Возможность 1": OnAction =FuncOptions(1)
для "Возможность 2": OnAction =FuncOptions(2)
и функция
Function FuncOptions(ind As Byte)
SendKeys "{BREAK}", True
CommandBars.ActionControl.State = Not CommandBars.ActionControl.State
CommandBars("Menu_Menu").Controls("Ccccccccccc").SetFocus
SendKeys "{DOWN}{DOWN}{RIGHT}" & Choose(ind, "", "{DOWN}")
End Function
Получается так, как задумано.
Но мне это кажется далеко не лучшим способом. Ведь и Windows 7 к SendKeys не особо лоялен, приходится менять параметры контроля учетной записи, и некоторые антивирусы могут его отклонить. И в целом, есть ощущение, что надо по-другому, желательно без SendKeys.
Как?
Подскажите, пожалуйста.
http://www.sql.ru/forum/1117837/posle-vybora-punkta-menu-ono-ne-dolzhno-zakryvatsya-fokus-ostaetsya-na-vybrannom-punkte