Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VBA For Excel Часть 02.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
1.08 Mб
Скачать

Приложение 3( Создание меню ) Введение

Программы, написанные на VBA, выглядят, более законченными, если в них используются пользовательские меню. Особенно удобно, если эти меню создаются и удаляются автоматически (программно). При написании программ VBA большого объема вообще не возможно обойтись без пользовательского меню. В связи с этим, мы решили дополнить наше издание этим приложением.

Типы меню приложений

Внутри приложений MS Office существует три типа меню:

  • Главное меню – меню, которое выводится по умолчанию вверху окна приложения, выше всех других меню.

  • Контекстное меню – меню, которое появляется при нажатии правой клавиши мыши на каком либо объекте (в частности на документе Word или книги Excel).

  • Панель инструментов – меню, которое можно включить и выключить через стандартные пункты головного меню: Вид-Панель Инструментов.

Наиболее часто программист VBA работает с главным и контекстным меню. И в данном издании мы рассмотрим работу именно с этими типами меню приложений.

Создание (и удаление) подпунктов главного меню через меню приложений Создание (и удаление) подпункта главного меню

  1. Войти в меню: Вид – Панель Элементов – Настройка

Рис 21 Создание подпункта главного меню

  1. Выбрать закладку Команды, затем, в разделе Категории выбрать пункт Новое меню (рис 21)

  2. В разделе Команды нажать левую клавишу мыши на пункте Новое меню, и не отпуская левую клавишу мыши перетащить данный раздел в головное меню приложения. (Для удаления нового раздела на главном меню нужно стащить его левой клавишей мыши на окно Настройка)

  3. Кнопкой Изменить выделенный объект можно изменить “Имя:” выделенного пункта меню

Создание (и удаление) пункта меню к макросу

  1. Если не активизировано окно Настройка, войти в меню: Вид – Панель Элементов – Настройка

  2. Выбрать закладку Команды, затем, в разделе Категории выбрать пункт Макросы (рис 22)

Рис. 22 создание пункта меню к макросу

  1. В разделе Команды нажать левую клавишу мыши на пункте Настраиваемая команда меню, и не отпуская левую клавишу мыши перетащить данный раздел в необходимый вам подпункт головного меню приложения. (Для удаления нового раздела на главном меню нужно стащить его левой клавишей мыши на окно Настройка)

  2. Кнопкой Изменить выделенный объект можно изменить “Имя:” выделенного пункта меню, через соответствующий пункт Выбрать значок для кнопки пункта меню, а так же, в приложении ExcelНазначить макрос к пункту меню.

Примечание:

К сожалению, вышеуказанные действия записываются не правильно в макрос. Вернее в программном коде макроса придется внести существенные изменения. Например, если вы сделали макрос, создающий пункт в главном меню с подписью - “Мой пункт”, то в макросе запишется следующий программный код:

Application.CommandBars("Worksheet Menu Bar").Controls.Add _

Type:= msoControlPopup, Before:=11

В этот программный код придется внести ряд изменений:

‘Убран параметр Before, для того, что бы ваш пункт добавлялся строго в ‘конце пунктов главного меню

Application.CommandBars("Worksheet Menu Bar").Controls.Add _

Type:= msoControlPopup

'Определяем индекс последнего, добавленого пункта меню

i = _

Application.CommandBars("Worksheet Menu Bar").Controls.Count

‘Назначаем подпись к пункту меню

Application.CommandBars("Worksheet Menu Bar") _

.Controls(i).Caption = "Мой пункт"

Если вы построите более сложное меню, и к его пунктам будут назначены макросы, пиктограммы и т.п., то вам придется сделать очень много программных изменений в макросе. Поэтому, разумнее полностью проектировать программный код, который, создает подпункты в головном меню. Об этом рассказано нами в следующих главах.

Создание меню в VBA

Обращение к меню

Обращение к меню происходит через объекты CommandBars и ActiveMenuBar. Ниже приведены примеры обращения к свойству Index меню с именем “text” и к главному, активному меню приложения:

Ind = Application.CommandBars(“Text”).index

Ind = Application.CommandBars.ActiveMenuBar.index

Создание пустого меню

Меню можно создать методом add объекта CommandBars.

Ниже приведены два примера создание главного и контекстного меню:

Application.CommandBars.Add Name:= _

"Имя главного меню", _

MenuBar:=True, temporary:=True

Application.CommandBars.Add _

"Имя контекстного меню", msoBarPopup

Вывод меню

Главное меню пользователя можно вывести через свойство Visible, а контекстное меню через метод ShowPopup. Если пользователь создал главное меню и вывел его, то оно заменяет стандартное меню приложения и существует, как главное меню, пока приложение не закрыли, или пока это меню не удалили.

Пример:

CommandBars("Имя контекстного меню").ShowPopup

CommandBars("Имя главного меню").Visible = True

В данном примере показано, как вывести контекстное и главное меню приложения или пользователя.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]