EXCEL-rак получить копию элемента меню

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
anval
Сообщения: 98
Зарегистрирован: 09 ноя 2004, 10:06

В главном меню EXCEL есть добавленный элемент меню (например, "ААА"). Как дописать в главное меню копию этого элемента под именем "ВВВ"?
Спасибо.
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

а можно узнать зачем?
Андрей Энтелис,
aentelis.livejournal.com
anval
Сообщения: 98
Зарегистрирован: 09 ноя 2004, 10:06

Можно. Меню "BBB" по структуре должно быть таким же, как и "ААА", другими должны быть имена макросов, вызываемые элементами этого меню. А т.к. структурное дерево этого меню достаточно объемное(более 100 позиций, структурированных по некоторым признакам), хочу съэкономить время на построении этой структуры(если смогу скопировать, просто подкорректирую имена макросов). Меню "ААА" создавалось средствами EXCEL, а не программно.
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

Ну в принципе меню это объект Application.CommandBar, соответственно его элемент - объект CommandBarControl. Посмотрите их cвойства и методы.
В цикле по коллекции читаете свойства и зоздаёте новый элемент.
Но IMHO это муторно. Лучше (если структура меню у вас совпадает) добавить
кнопку или combobox для переключения между "виртуальными меню" и в его
обработчике менять для соответствующих элементов .Caption и .OnAction.
Или только .Caption а ветвление сделать в самом макросе обработчике
Hint: Обратите внимание на метод Application.CommandBars.FindControls
Ещё раз обращаю внимание что могут быть проблемы в EXCEL 2007 из за
изменения объектной модели офиса и перехода на Ribbon интерфейс

А вообще то посмотрите
Андрей Энтелис,
aentelis.livejournal.com
anval
Сообщения: 98
Зарегистрирован: 09 ноя 2004, 10:06

Aent, спасибо за ответ и на этот вопрос, буду разбираться.
Ответить