Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование VBA.pdf
Скачиваний:
374
Добавлен:
03.05.2015
Размер:
3.07 Mб
Скачать

73

Private Sub CommandButton2_Click()

Unload Me

End Sub

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

1.Запускается (пользователем или программно) процедура СТАТИСТИКА2.

2.Эта процедура загружает форму СТАТИСТИКА, при инициализации которой выполняется процедура UserForm_initialize.

3.Пользователь выделяет на рабочем листе диапазон значений, на который ссылается элемент управления RefEdit.

4.При нажатии на кнопку ok вызывается процедура CommandButton1_Click, в результате выполнения которой осуществляется подсчёт минимума, максимума и суммы величин выбранного диапазона при помощи свойств Min, Max и Sum объекта WorksheetFunction, представляющие собой одноименные функции рабочего листа и которые выводятся на экран при помощи функ-

ции MsgBox (рис. 33).

Рис. 31. Результаты выполнения приложения СТАТИСТИКА

5.При нажатии на кнопку Выйти выполняется процедура CommandButton2_Click,в результате чего форма СТАТИСТИКА выгружается.

2.11.2.13.Элементы управления на рабочем листе

Выше было указано, что элементы управления можно размещать в пользовательских формах и непосредственно на рабочем листе, создавая тем самым дружественный пользователю интерфейс. Панель инструментов Элементы управления отображается на рабочем листе Excel коман-

дой Вид | Панели инструментов | Элементы управления (рис. 36):

Рис. 32. Элементы управления на рабочем листе

Кроме панели инструментов Элементы управления в Excel имеется похожая на неё панель Формы, набор кнопок которой практически такой же, как на панели Элементы управления (рис. 37).

74

Рис. 33. Панель Формы

Удобство этой панели состоит в том, что многие её кнопки можно связать с макросами (процедурами) VBA. Кроме того, после размещения элемента управления панели Формы на рабочем листе на этом элементе выводится на русском языке её название, отражающее её назначение: Кнопка, Метка и т.д. Для размещения элемента управления на рабочем столе нужно нажать на соответствующую кнопку панели инструментов Элементы управления или Формы и с появившимся крестообразным курсором начертить элемент управления на рабочем листе (рис. 38 а,б).

Рис. 34 а. Примеры элементов управления панели Формы

Рис. 34 б. Примеры элементов управления панели Элементы управления

Следует отметить, что задание свойств элементам управления обеих панелей различаются, т.к. панель инструментов Формы унаследована от устаревшей версии MS Ecsel 5.0 и используется преимущественно совместимости приложений, созданных в старых версиях.

Размещение элементов управления производится в режиме конструктора, для перехода в который нужно нажать кнопку Режим конструк-

тора панели инструментов Элементы управления.

Как было показано выше, элементы управления являются объектами, и как любые другие объекты обладают свойствами, методами и событиями. Значения свойств элементов управления устанавливаются как в коде, так и так и на этапе их конструирования. Для установки значений свойств на этапе конструирования нужно выбрать элемент управления и нажать кнопку Свойства панели инструментов Элементы управления. На экране отобразится окно Properties (рис. 39).

75

Рис. 35. Окно Properties

Код процедуры, обрабатывающий события, связанные с элементом управления, расположенном на рабочем листе (Лист1, Лист2 и т.д.), набирается в модуле этого рабочего листа (Лист1(Лист1), Лист2 (Лист2), и т.д.), на котором расположен элемент управления. Для входа в этот модуль нужно выбрать элемент управления и нажать кнопку Исходный текст панели инструментов Элементы управления.

По окончании конструирования элемента управления необходимо выйти из режима конструирования, нажав кнопку Режим конструктора.

Properties

В качестве примера рассмотрим проектирование на рабочем листе элемента управления Кнопка. Последовательность действий следующая.

1.Нажать кнопку Режим конструктора панели инструментов Эле-

менты управления.

2.Нажать кнопку панели инструментов Элементы управления и на-

рисовать на рабочем листе кнопку , на поверхности которой появится надпись CommandButton1. При создании второго элемента управления Кнопка на её поверхности появится надпись

CommandButton2 и т.д.

3.Щёлкнуть по созданной кнопке правой кнопкой мыши и в появившемся диалоговом окне выбрать пункт Свойства панели инструментов Элементы управления. На экране появится окно Properties. Установить в этом окне значение свойства Name равным КнПривет, а свойства Caption равным ПРИВЕТСТВИЕ.

4.Выбрать созданную кнопку и щёлкнуть по кнопке Исходный текст панели инструментов Элементы управления. В результате произойдёт переход в редактор VBA и автоматически создана первая и последняя инструкция обработки события Click кнопки, возникающего при её нажатии (щелчке):

Private Sub CmdПривет_Click() End Sub

5.Добавить в процедуру обработки события Click функцию MsgBox, которая отобразит на экране диалоговое окно с приветствием (рис. 40):

76

Private Sub CmdПривет_Click()

MsgBox "Желаем вам успехов" & Chr(13) + Chr(10) & _

"в изучении VBA!", vbExclamation

End Sub

Рис. 36. Результат выполнения процедуры CmdПривет_Click

В этой процедуре выражение Chr(13) + Chr(10) вызывает возврат каретки и перевод строки. Вместо него можно использовать смешанную кон-

станту vbCrLf.

Такой же самый результат можно получить, используя элемент Кнопка панели элементов Формы (рис. 37). В этом случае последовательность действий следующая.

1.Выполнить команду Вид | Панели инструментов | Формы.

2.Нажать кнопку панели инструментов Формы и нарисовать на рабочем листе кнопку, на поверхности которой появится надпись Кнопка1. При создании второго элемента управления Кнопка на её поверхности появится надпись Кнопка2 и т.д.

3.Щёлкнуть по созданной кнопке правой кнопкой мыши и в появившемся диалоговом окне выбрать пункт Изменить текст и ввести слово ПРИВЕТСТВИЕ, щёлкнуть правой кнопкой мыши и появившемся диалоговом окне выбрать пункт Завершить изменение тек-

ста.

4.Щёлкнуть мышью по любой ячейке рабочего листа вне области кнопки.

5.Вставить в стандартный модуль Module1 следующую процедуру:

Sub ПРИВЕТ ()

MsgBox "Желаем вам успехов" & Chr(13) + Chr(10) & _ "в изучении VBA!", vbExclamation

End Sub

6.Щёлкнуть правой кнопкой мыши по элементу Кнопка ПРИВЕТ на рабочем листе и в появившемся меню выбрать пункт Назначить макрос…

7.В диалоговом окне “Назначить макрос объекту” выбрать макрос

ПРИВЕТ.

Если щёлкнуть теперь по кнопке ПРИВЕТ, то на экран будет выведено диалоговое окно с текстом "Желаем вам успехов в изучении VBA!".