Проектирование интерфейса. Меню
Добавление подменю
Подменю (или дочернее меню) примыкает к боковой стороне другого меню - родительского - на уровне той команды родительского меню, которая является заголовком подменю. Подменю можно добавлять как к выпадающим меню, так и к другим подменю и к всплывающим меню. Сначала добавляется пустое подменю, затем в него вставляются команды. Добавить подменю можно двумя способами: с помощью диалогового окна Настройка и через вызов метода Add в VBA.
Рассмотрим вначале визуальный способ. Для добавления подменю нужно, как и раньше, активизировать диалоговое окно Настройка и сделать модифицируемое меню видимым. После этого нужно действовать так.
- На вкладке Команды в списке Категории выберите команду Новое меню.
- Выберите команду Новое меню справа в списке Команды и перетащите ее в то место меню, куда нужно добавить подменю. Чтобы выпадающее меню открылось, показав уже имеющиеся в нем элементы, протащите Новое меню через имя выпадающего меню. При этом горизонтальная черта будет отмечать то место в списке рубрик выпадающего меню, куда попадет заголовок нового подменю.
- Щелкните правой кнопкой мыши Новое меню и введите заголовок нового подменю в поле Имя появившегося окна. Одновременно можно задать ключ быстрого доступа к нему, поставив символ "&" перед той буквой, которая будет этим ключом.
Теперь при щелчке заголовка подменю справа или слева от него появится пустое подменю.
Чтобы добавить новое подменю программно, к объекту, представляющему родительское выпадающее меню, нужно применить метод Add коллекции CommandBarControls. В качестве параметра Type (Тип) нужно использовать значение msoControlPopup.
В следующем примере в конец выпадающего меню "Ввод документов", расположенного на панели меню "Головное меню", добавляется подменю "о движении товаров".
Dim CstmPopUp1 As CommandBarPopup Set CstmPopUp1 = CstmCtrl.Controls.Add(Type:=msoControlPopup) CstmPopUp1.Caption = " о движении товаров"
Вставка и группировка команд
Office 2000 позволяет добавлять команды к любым встроенным и пользовательским меню, а также изменять внешний вид, группировать и визуально отделять одну группу команд от другой.
Добавление встроенной команды с помощью окна Настройка
В диалоговом окне Настройка сделайте модифицируемое меню видимым, а затем:
- На вкладке Команды выберите в списке Категории категорию добавляемой команды - все команды данной категории будут показаны в списке Команды.
- Выберите в списке Команды команду и перетащите в то меню или подменю, куда она добавляется. Чтобы выпадающее меню или подменю открылось, показав имеющиеся в нем элементы, протащите команду через заголовок соответствующего выпадающего меню или подменю. Горизонтальная черта отмечает место в списке команд выпадающего меню, куда попадет заголовок нового подменю, когда Вы отпустите кнопку мыши.
Скопировать команду можно и иначе: выведите на экран меню с нужной командой и перетащите ее в свое меню при нажатой клавише Ctrl.
Добавление собственной команды с помощью окна Настройка
Добавление команды с помощью окна Настройка в собственное или встроенное меню зависит от приложения Office 2000, в котором оно выполняется.
- . Microsoft Access. Чтобы добавить команду, запускающую на исполнение макрос, нужно выполнить те же действия, что и при добавлении встроенной команды. При этом в списке Категории выберите Все макросы (All Macros) и перетащите имя нужного макроса из списка Команды в меню. Вызов процедуры-функции вставляется, как и встроенная команда. Выберите в списке Категории нужную категорию и перетащите затем нужный элемент из списка Команды в свое меню. Щелкнув этот элемент правой кнопкой мыши, в появившемся меню выберите команду Свойства (Control Properties). На экране появится окно с тем же именем. В поле Подпись (Caption) этого окна замените прежнее имя функции на новое (это будет имя команды в меню). В поле Действие (On Action) введите выражение =имя-функции(), запускающее VBA-функцию на исполнение.
- Microsoft Excel. Действуя, как и при вставке встроенной команды, выберите в списке Категории команду Макрос (Macros ) и перетащите элемент Настраиваемая команда меню (Custom Menu Item) из списка Команды в меню. Щелкните эту команду правой кнопкой мыши и выберите в появившемся меню команду Назначить макрос (Assign Macro). Затем введите в поле Имя (Macro Name) имя макроса, который должен запускаться командой меню.
- Microsoft Word и Microsoft PowerPoint. Как при вставке встроенной команды, выберите в списке Категории команду Макрос и перетащите в меню имя нужного макроса из списка Команды.
Добавление команд с помощью VBA
Добавить новую команду в меню можно, применив метод 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.
Взгляните, как в меню "Проверки" из панели "Головное меню" можно вставить команду проверки правописания Spelling.
Set mySpell = CommandBars("Головное меню").Controls("Проверки") _ .Controls.Add(Id:=2)