Листинг 3.40. Добавление кнопки на панель инструментов
Sub AddCustomButton()
' Добавление кнопки на панель инструментов
With Application.Toolbars(1).ToolbarButtons.Add(button:=222)
.Name = «Кнопка»
.OnAction = «Макрос»
End With
End Sub
Кнопка, добавленная на стандартную панель инструментов в результате применения этого макроса, показана на рис. 3.10.
Рис. 3.10. Добавление пользовательской кнопки
Примеры создания панелей инструментов
В данном разделе мы рассмотрим несколько трюков, с помощью которых можно создавать пользовательские панели инструментов.
Чтобы быстро создать пользовательскую панель инструментов с одной кнопкой, можно воспользоваться следующим макросом (листинг 3.41).
Листинг 3.41. Панель с одной кнопкой
Sub CreateCustomControlBar()
' Создание панели инструментов
With Application.CommandBars.Add(Name:="Панель",
Temporary:=True)
' Создание и настройка кнопки
With .Controls.Add(Type:=msoControlButton)
.Style = msoButtonIconAndCaption
.FaceId = 66
.Caption = «Просто кнопка»
End With
' Покажем панель
.Visible = True
End With
End Sub
Результат выполнения данного макроса представлен на рис. 3.11.
Рис. 3.11. Пользовательская панель инструментов
Обратите внимание, что в данном случае кнопка отображается со значком и подписью одновременно.
Примечание
Кнопка General на панели инструментов присутствует по умолчанию, независимо от выполненного макроса. В данном случае нас интересует лишь кнопка Просто кнопка, созданная с помощью макроса.
Теперь познакомимся с макросом, использование которого позволяет создать пользовательскую панель инструментов с двумя кнопками. Код данного макроса выглядит следующим образом (листинг 3.42).
Листинг 3.42. Панель с двумя кнопками
Sub CreateCustomControlBar()
' Создание панели инструментов
With Application.CommandBars.Add(Name:="Панель",
Temporary:=True, _
Position:=msoBarLeft)
' Создание и настройка первой кнопки
With .Controls.Add(Type:=msoControlButton)
.Style = msoButtonWrapCaption
.Caption = «Просто кнопка»
End With
' Создание и настройка второй кнопки
With .Controls.Add(Type:=msoControlButton)
.Style = msoButtonIconAndWrapCaption
.Caption = «Кнопка»
.FaceId = 225
End With
' Покажем панель
.Visible = True
End With
End Sub
После запуска макроса на вкладке Надстройки появится пользовательская панель (рис. 3.12).
Рис. 3.12. Панель в левой части интерфейса
В данном случае кнопка General также присутствует по умолчанию, наш макрос на ее появление не влияет.
Формирование пользовательского меню
Возможности программы предусматривают создание и дальнейшее использование пользовательских меню, которые могут располагаться на вкладке Надстройки. Вот пример подобного макроса (листинг 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.
Читать дальше
Конец ознакомительного отрывка
Купить книгу