Добавить новую команду в меню можно, применив метод Add коллекции CommandBarControls к объекту, представляющему изменяемое меню. Чтобы добавить собственную команду, вставьте ее имя в меню, а затем в качестве значения свойства OnAction задайте имя VBA-процедуры, которая должна вызываться при выборе данной команды. В качестве значения аргумента Type (Тип) метода Add укажите msoControlButton, означающее, что вставляемый в меню элемент будет командой. Добавим команду "Накладная" в выпадающее меню "Ввод документов" из панели "Головное меню". Выбор этой команды запускает процедуру Invoice.
Set CstmCtrl = CstmPopUp1.Controls.Add(Type:=msoControlButton) CstmCtrl.Caption = "Накладная" CstmCtrl.OnAction = "Module1.Invoice"
Метод Add позволяет вставлять в меню и встроенные команды. Для этого при вызове задайте значение параметра Id, равное числовому идентификатору данной команды в Office 2000. Поскольку в Office 2000 количество команд доходит до 4000, мы приведем здесь лишь два фрагмента из начала таблицы идентификаторов, включающих, в частности, некоторые популярные команды из меню File и Edit.
2 | &Spelling | Орфография | 19 | &Copy | Копировать |
3 | &Save | Сохранить | 21 | &Cut | Вырезать |
4 | Печать | 22 | &Paste | Вставить | |
18 | &New | Создать | 23 | &Open | Открыть |
Взгляните, как в меню "Проверки" из панели "Головное меню" можно вставить команду проверки правописания Spelling.
Set mySpell = CommandBars("Головное меню").Controls("Проверки") _ .Controls.Add(Id:=2)