Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практикум13 по Excel (пр.17%2C Макросы).docx
Скачиваний:
8
Добавлен:
06.09.2019
Размер:
2.18 Mб
Скачать

Немного теории.

Итак, макрос нами создан. Макрорекордер, который мы использовали, создал в модуле процедуру.

Структура кода процедуры.

В общем случае процедура имеет вид:

Sub ИмяПроцедуры (СписокПараметров)

Инструкции

End Sub

- СписокПараметров – это список параметров, от которых зависит функция. Разделителем в списке является запятая. Список параметров может и отсутствовать – быть пустым (см. листинг 1).

- Инструкции – это последовательность инструкций, выполняемых при работе процедуры. В совокупности они образуют так называемое тело процедуры.

Процедура обработки события.

Кроме обычных процедур в VBA имеются процедуры, которые обрабатывают события, связанные с тем или иным объектом. В общем случае такие процедуры записываются в виде:

[Private] Sub ИмяОбъекта_ИмяСобытия (СписокПараметров)

Инструкции

End Sub

Ключевое слово Private является модификатором доступа и обозначает, процедура видна другим процедурам только в модуле, в котором она располагается. Например, процедура обработки события активизации рабочего листа имеет вид:

Private Sub Worksheet_Activate ( )

Инструкции

End Sub

Процедура обработки события.

MS Office 2007 обладает также и полноценным набором различных элементов управления: кнопка, поля со списком, переключатель, флажок и т.д., которые при необходимости можно разместить на рабочем листе.

Для того, чтобы увидеть список доступных элементов управления выполните команду: Разработчик → Элементы управления → Вставить, см. рис. 9:

Рис. 9. Коллекция элементов управления MS Office 2007.

Следует отметить, что элементы управления, расположенные в группе Элементы управления формы, предназначены прежде всего для обеспечения совместимости с файлами старых версий Excel (до Excel 97), в которых используются эти элементы управления. Они обладают значительно меньшими возможностями по сравнению с элементами управления, расположенными в группе Элементы ActiveX.

Некоторые из них вообще не могут использоваться в документах Excel последних версий (например, Edit Box (поле ввода), Combination List-Edit (поле ввода со списком) и Combination Drop-Down Edit (поле ввода с раскрывающимся списком).

Элементы управления группы Элементы ActiveX являются независимыми компонентами различных приложений, в том числе могут использоваться и MS Excel. Данная группа включает в себя также и элементы управления, которые аналогичны многим элементам из группы Элементы управления формы, но которые являются недоступными в MS Excel 2007.

Кроме стандартных элементов управления можно использовать дополнительные элементы управления. Например, для воспроизведения звука или видео непосредственно с рабочего листа вместе с Excel поставляется некоторое количество таких элементов (элементов управления мультимедиа). Кроме того можно подключать элементы управления, которые используются в других программах или созданные отдельно элементы управления.

В модуле рабочего листа можно создать процедуры, которые будут обрабатывать те или иные события, происходящие с элементами управления. Например, нажатие кнопки, выбор элемента из списка, выбор переключателя, установка флажка и т.д. будут автоматически приводить к тем или иным вычислениям, построению диаграмм и.т.д.

Рассмотрим небольшой пример использования элемента управления Кнопка (CommandButton) , а также события, связанного с ней – Click, которое генерируется при нажатии кнопки.

Пример 2.

Использование элемента управления Кнопка на рабочем листе.

Продемонстрируем использование на рабочем листе элемента управления Кнопка (CommandButton) из группы Элементы ActiveX. Пусть при нажатии на элемент управления Кнопка будет активизироваться рабочий Лист3.

Для этого:

1) Запустите MS Excel 2007 и убедитесь, что указатель ячейки находится на рабочем листе Лист2.

2) Выполните команду: Разработчик → Элементы управления → Вставить.

3) Нажмите элемент управления Кнопка (CommandButton) из группы Элементы ActiveX и перейдите на непосредственно на рабочий лист, указатель при этом приобретает вид тонкого крестика.

4) Выберите место на рабочем листе и, не отпуская левую кнопку мыши, нарисуйте кнопку необходимого размера, после чего отпустите кнопку мыши. Обратите внимание, что после появления элемента управления Кнопка (CommandButton) на рабочем листе кнопка Режим конструктора стала активной. На поверхности первого созданного элемента управления появилась надпись CommandButton1. Если создать ещё один элемент управления Кнопка (CommandButton), то он будет называться: CommandButton2, следующий CommandButton3 и т.д.

Примечание: если кнопку рисовать, как и любой графический объект, при нажатой клавише Shift, то это обеспечит ей квадратную форму. А при нажатой клавише Alt, кнопка будет привязана к сетке рабочего листа. Созданную кнопку можно перемещать при помощи маркера перемещения, а при помощи маркеров размеров задавать её размеры.

5) Щелкните правой кнопкой мыши на созданной кнопке и из появившегося контекстного меню выберите команду Свойства (Properties) для открытия окна Properties, см. рис. 10:

Рис. 10. Элемент управления Кнопка и соответствующее ему окно свойств Properties.

Элемент управления Кнопка является объектом, т.е. он, как и любой объект обладает свойствами, методами и событиями. Надпись, отображаемая на поверхности элемента управления Кнопка, задается значением свойства Caption.

Кроме того, элемент управления Кнопка имеет свойство Name, которое идентифицирует его как объект. В данном случае, оно также равно CommandButton1. Измените в открытом окне Properties значение свойства Caption, т.е. надпись, отображаемую на поверхности кнопки с CommandButton1 на Лист3 (для того, чтобы подчеркнуть, что эта кнопка будет активизировать рабочий лист Лист3). При желании можете поэкспериментировать со следующими свойствами элемента

управления Кнопка: BackColor, Font, ForeColor, Shadow. Закройте окно свойств Properties.

Примечание: для открытия окна Properties можно также выделить мышью требуемый элемент управления в режиме конструктора (для перехода в режим конструктора выберите на вкладке Разработчик ленты, раздел Элементы управления, далее щелкните мышью на кнопке Режим конструктора), а затем выполните команду: Разработчик ленты → Элементы управления → щелкните на кнопке Свойства.