Пример создания/удаления меню

Теперь создадим меню Вставка знака, которое расположим в самом конце строки меню рабочего листа (после меню Справка).

Пример создания/удаления меню - student2.ru

Рис. 10‑17. Добавление меню Вставка знака

Листинг программы:

Sub ДобавлениеМеню()

Set myMenuBar = CommandBars("Worksheet Menu bar")

'1. Добавляем вложенное меню:

Set newMenu = myMenuBar.Controls.Add(Type:=msoControlPopup, _

Temporary:=True)

'2. Задаем текст надписи:

newMenu.Caption = "Вставка знака"

'3. Во вложенное меню добавляем кнопку:

Set ctrl1 = newMenu.Controls _

.Add(Type:=msoControlButton, ID:=1)

'4. На кнопке должна быть только надпись:

ctrl1.Style = msoButtonCaption

'5. Добавляем надпись:

ctrl1.Caption = "Плюс в кружочке"

'6. Создаем всплывающую подсказку:

ctrl1.TooltipText = "Вставка специального символа"

'7. При щелчке по кнопке выполняется процедура Символ:

ctrl1.OnAction = "Символ"

End Sub

Задание: введите данный код в книгу Плюс в кружочке.xls и запустите его. Убедитесь, что меню Вставка знака создана.

Удаление меню

Для удаления меню воспользуемся следующей программой:

Sub УдалениеМеню()

Set myMenuBar = CommandBars("Worksheet Menu bar")

For Each Меню In myMenuBar.Controls

If Меню.Caption = "Вставка знака" Then

Меню.Delete

Exit For

End If

Next

End Sub

Задание: введите данный код в книгу Плюс в кружочке.xls и запустите его. Убедитесь, что меню Вставка знака удалено.

Обработка событий объектов Workbook и Worksheet

События имеются не только у элементов управления. Объекты, рассмотренные в главе 1, также обладают своими событиями.

События объекта Workbook

События рабочей книги возникают в случае изменений самой книги, её листов, надстроек и сводных таблиц. Рассмотрим некоторые события объекта Workbook.

Событие Open

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

Чтобы связать это событие с открытием книги выполните следующие действия:

1. В окне проекта Плюс в кружочке.xls (в редакторе VBA) щелкните ThisWorkbook(Рис. 10‑2Рис. 11‑1).

Пример создания/удаления меню - student2.ru

1. Объект ThisWorkbook
Пример создания/удаления меню - student2.ru Пример создания/удаления меню - student2.ru
2. Список объектов
3. Список процедур
Пример создания/удаления меню - student2.ru

Рис. 11‑1.

2. В списке объектов выберите объект Workbook.

3. В списке процедур выберите событие Open. На экране появится первая последняя строки процедуры обработки этого события Workbook_Open.

4. Вставьте в неё нужный фрагмент кода (код процедуры СозданиеПанелиИнструментов без 1-й и последней строки).

Сохраните внесенные изменения, закройте книгу Плюс в кружочке.xls, затем откройте её заново. Убедитесь, что панель инструментов создана.

Событие BeforeClose

Аналогично создается обработка события при закрытии рабочей книги за тем исключением, что в списке процедур необходимо выбрать событие BeforeClose.

Задания:

1. Создайте код обработки события BeforeClose, сохраните книгу и закройте её. Убедитесь, что панель инструментов Вставка знака удалена;

2. В рабочей книге Плюс в кружочке-Меню.xls напишите процедуры обработки событий OpenиBeforeClose, которые при открытии книги добавляют меню Вставка знака, а при закрытии удаляют его.

Событие SheetActivate

Рассмотрим ещё одно часто используемое событие SheetActivate. Оно наступает при активизации любого листа рабочей книги. Следующий пример демонстрирует обработку этого события (вывод на экран названия активизированного листа):

Private Sub Workbook_SheetActivate(ByVal Sh As Object)MsgBox Sh.NameEnd Sub

Задание:

Создайте код обработки события SheetActivate и протестируйте выполнение этой программы (для этого перейдите в Excel и щелкните по ярлычкам листов).

Наши рекомендации