Формирование пользовательского меню

We use cookies. Read the Privacy and Cookie Policy

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

Листинг 3.43. Создание пользовательского меню (вариант 1)

Sub AddCustomMenu()

' Добавление меню

W i t h A p p l i c a t i o n . C o m m a n d B a r s ( 1 ) . C o n t r o l s . A d d

(Type:=msoControlPopup, _

Temporary:=True)

.Caption = «Архив»

With .Controls

' Добавление и настройка первого пункта

With .Add(Type:=msoControlButton)

.FaceId = 280

.Caption = «Просмотр»

.OnAction = «Макрос1»

End With

' Добавление вложенного меню

With .Add(Type:=msoControlPopup)

.Caption = «База данных»

With .Controls

' Добавление и настройка первого пункта _

вложенного меню

With .Add(Type:=msoControlButton)

.FaceId = 1643

.Caption = «Поставщики»

.OnAction = «Макрос2»

End With

' Добавление и настройка второго пункта _

вложенного меню

With .Add(Type:=msoControlButton)

.FaceId = 1000

.Caption = «Покупатели»

.OnAction = «Макрос3»

End With

End With

End With

End With

End With

End Sub

Очевидно, что данный макрос используется в комплексе с другими макросами (Макрос 1, Макрос2 и Макрос3), которые разрабатываются отдельно.

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

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

Рис. 3.13. Добавление пользовательского меню

Такое же меню (см. рис. 3.13) появится на вкладке Надстройки после применения макроса, код которого приведен в листинге 3.44.

Листинг 3.44. Создание пользовательского меню (вариант 2)

Sub AddCustomMenu1()

' Добавление меню с названием «Архив» в часть меню, _

относящуюся к рабочей книге

With MenuBars(«Worksheet»).Menus.Add(Caption:="Архив")

' Добавление кнопки

.MenuItems.Add Caption:="Просмотр", OnAction:="Макрос1"

' Добавление подменю

With .MenuItems.AddMenu(Caption:="База данных")

' Добавление пунктов подменю

MenuItems.Add Caption:="Поставщики", OnAction:="Макрос2"

.MenuItems.Add Caption:="Покупатели", OnAction:="Макрос3"

End With

End With

End Sub

К аналогичному результату приведет использование также такого макроса (листинг 3.45).

Листинг 3.45. Создание пользовательского меню (вариант 3)

Sub AddCustomMenu2()

' Добавление меню с названием «Архив» в часть меню, _

относящуюся к рабочей книге

With MenuBars(«Worksheet»).Menus.Add(Caption:="Архив")

' Добавление кнопки

.MenuItems.Add Caption:="Просмотр", OnAction:="Макрос1"

' Добавление подменю

With .MenuItems.AddMenu(Caption:="База данных")

' Добавление первого пункта подменю

With .MenuItems.Add(Caption:="Поставщики")

' Настройка кнопки

.OnAction = «Макрос2»

End With

' Добавление второго пункта подменю

With .MenuItems.Add(Caption:="Покупатели")

' Настройка кнопки

.OnAction = «Макрос3»

End With

End With

End With

End Sub

Как и в первом случае, два последних макроса предусматривают использование дополнительных макросов Макрос1, Макрос2 и Макрос3.