Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций по КИТ.doc
Скачиваний:
3
Добавлен:
04.11.2018
Размер:
2.3 Mб
Скачать

Пример создания панели инструментов пользователя

Приведем пример проекта, который создает интерфейс приложения, состоящего из строки меню и одной панели инструментов. В панель инструментов входят две кнопки и раскрывающийся список. На поверхности одной из кнопок выводится рисунок, а другой — надпись (рис. 8.2).

Рис. 8.2. Пользовательский интерфейс

Каждая из кнопок связана с макросом таким образом, что их активизация приводит к выполнению соответствующего макроса. Кроме того, эти кнопки снабжены пояснительными надписями, которые отображаются в окне всплывающей подсказки. При закрытии приложения данная панель инструментов удаляется, а ее место занимают панели инструментов Стандартная (Standard) и Форматирование (Formatting).

В окне Проект — VBAProject (Project - VBAProject) выберите лист ThisWorkbook и наберите следующие две процедуры.

Private Sub Workbook_WindowActivate(ByVal Wn As Excel.Window)

'

' Процедура создания новой панели инструментов при

' открытии рабочей книги

'

' При открытии рабочей книги панели инструментов Форматирование

' и Стандартная скрываются

'

'

With Application

.CommandBars("Formatting").Visible = False

.CommandBars("Standard").Visible = False End With

' Создание новой панели инструментов с именем

' МояПанельИнструментов, которая будет

' удаляться при закрытии приложения

'

With Application.CommandBars

.Add(Name:="МояПанельИнструментов",

Position:=msoBarTop, MenuBar:=False, Temporary:=True)

.Visible = True With .Controls

' Создание кнопки с рисунком

With .Add(Type:=msoControlButton, Id:=2950)

.TooltipText = "КнопкаДейства!" .OnAction = "Действо 1"

End With

'

' Создание кнопки с надписью

With .Add(Type:=msoControlButton, Id:=l)

.Caption = "Действо"

.TooltipText = "КнопкаДейства2"

.Style = msoButtonCaption

.OnAction = "Действо 2" End With

' Создание раскрывающегося списка

With .Add(Type:=msoControlDropdown)

.Addltem "Приедет", 1 .Addltem "Уедет", 2

.Addltem "Еще не решил", 3

.Listlndex = i

End With

End With

End With

End Sub

'

Private Sub Workbook_WindowDeactivate(ByVal Wn As Excel.Window)

' Процедура, отображающая панели инструментов Форматирование

' ' и Стандартная при закрытии приложения

'

With Application

.CommandBars("Formatting").Visible = True

.CommandBars("Standard").Visible = True

End With

End Sub

А на листе модуля введите следующие две процедуры, которые будут выполняться при нажатии на соответствующие кнопки.

Sub Действо1()

MsgBox "Результат действа 1"

End Sub

Sub Действо 2()

MsgBox " Результат действа 2"

End Sub

Пример создания строки меню пользователя

Приведем пример проекта, который создает интерфейс приложения, состоящего из пользовательской строки меню. Пользовательская строка меню включает два пункта меню, причем первый пункт содержит в себе также раскрывающееся меню (рис. 8.3). Каждый пункт связан с макросом так, что при их выборе выполняется -соответствующий макрос. При закрытии приложения пользовательская строка меню удаляется.

Рис. 8.3. Интерфейс с пользовательской строкой меню

В окне Проект — VBA Project (Project - VBAProject) выберите лист Thisworkbook и введите на нем следующие две процедуры.

Private Sub Workbook_WindowActivate(ByVal Wn As Excel.Window)

'

' Процедура создания новой строки меню при

' открытии рабочей книги. При закрытии приложения

' подданная строка удаттететея

'

With Application.CoimnandBars.Add(Name:="МоеМеню", MenuBar:=True, Temporary:=True) .Visible = True

With .Controls

'

' Создание меню Меню!

'

With .Add(Type:=msoControlPopup)

.Caption = "&Меню1" With .Controls

With .Add (Type :=msoControlButtoj»)

.Caption = "Пункт&1" .OnAction = "АтьДва!"

End With

'

' Создание подменю Меню1

With -Add(Type:=msoControlPopup)

.Caption = "&ПодМеню1" With

.Controls

With .Add(Type:=msoControlButton)

.Caption = "Пункт&2" .OnAction = "АтьДва2"

End With

With .Add(Type:=msoControlButton)

.Caption = "Пункт&З"

.OnAction = "АтьДваЗ"

End With

End With

End With

End With

End With

'

' Создание меню Меню2

'

With .Add(Type:=msoControlPopup)

.Caption = "&Меню2" With .Controls

With .Add(Type:=msoControlButton)

.Caption = "Пункт&4"

.OnAction = "АтьДва4"

End With

End With

End With

End With

End With

End Sub

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

Sub АтьДва!()

MsgBox "Стой! Стоять! Буду стрелять!"

' End Sub

'

Sub АтьДва2 ()

MsgBox "Стой! Стоять! Стреляю в воздух!"

End Sub

Sub АтьДваЗ()

MsgBox "Стой! Стоять! Последний раз стреляю в воздух!"

End Sub

'

Sub АтьДва4()

MsgBox "Стой! Стоять! Стреляю!"

End Sub