Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб.раб.№1 VBA.doc
Скачиваний:
2
Добавлен:
20.07.2019
Размер:
921.09 Кб
Скачать

Создание модуля

При создании проекта автоматически создается модуль для каждого рабочего листа и для всей книги. Кроме того модули создаются для каждой пользовательской формы, класса, макроса. Различают стандартные модули и модули объектов. Стандартные модули содержат макросы и добавляются в проект командой меню Вставка-Модуль (Insert/Module). К модулям объектов относят модули рабочих книг, листов, форм и классов.

Основная работа по написанию и отладке макросов и специализированных функций пользователя происходит в окне редактирования тек­стов программ (Code). Оно появляется после добавления модуля пользователя. В этом окне доступны 2 режима: просмотр кода процедуры или всего модуля. Переключение режимов производится выбором одной из 2-х кнопок в нижнем левом углу окна редактирования кода.

В верхней части окна кода помещены два раскрывающихся списка: 1 (General) – позволяет выбрать управляющий элемент или форму, 2 (Declarations) – позволяет выбрать событие, допустимое для выбранного в 1-ом списке объекта. Окно редактирования кода позволяет автоматически завершить написание кода операторов, свойств и параметров, предлагая список компонентов. Для автоматического отображения списка компонентов, сведений о процедурах, функциях, свойствах, методах, а также для проверки синтаксиса нужно установить флажки Список компонентов, Краткие сведения, Проверка синтаксиса в диалоговом окне Параметры (вкладка Редактор).

Редактор кода позволяет получить информацию о ключевом слове, процедуре, функции, свойстве или методе. Для этого достаточно установить курсор на нужное ключевое слово и нажать клавишу F1.

Код программы, написанной пользователем на VBA, хранится в модулях. Модуль - это совокупность объявлений и процедур, хранящихся как единое целое.

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

 Процедура – это независимая часть программы, которую можно вызвать по имени для выполнения определённых действий. Процедура выполняет один или несколько операторов и не возвращает значения.

Процедура начинается словом Sub, а заканчивается End Sub. Процедура выполняется в ответ на какое-либо событие или говорят, что процедура обрабатывает событие.

Примером процедуры является код макроса:

Sub МойПервыйМакрос_Click()

With Selection.Font

.Size = 18

.ColorIndex = 3

End With

End Sub

 

Имя процедуры состоит из названия объекта МойПервыйМакрос и события Click (щелчок), которое отделяется знаком подчёркивания от названия объекта.

Функция аналогична процедуре, но отличается тем, что возвращает в точку вызова основной программы единственный результат. Функции, как правило, работают с содержимым ячеек, а не с их видом. Значение, вычисленное функцией пользователя, можно использовать в формулах так же, как и значения обычных функ­ций Excel.

Например, Y= ABS(X); - функция определяет модуль числа X и возвращает результат в точку вызова Y.

VBA можно использовать для создания собственных функций. Функция начинается словом Function, а заканчивается End Function. Например, можно определить функцию Процент (число), которая будет определять процент от числа.

Public Function Процент (число)

Процент = число*0.01/100

End Function

 

Функция может иметь аргумент, например, аргумент Число - может быть числом или ссылкой на ячейку рабочего листа. В приведенном примере величина процента является тем значением, которое возвращает функция.

Правила написания имён процедур и функций:

- Первые три символа имени должны быть буквами

- Имя может содержать только буквы, цифры и знаки подчёркивания

- Имя не должно иметь более 255 символов

Для добавления в модуль процедуры необходимо находясь в среде VBA выполнить команду Insert(Вcтавить)/Module(Модуль) и затем воспользоваться командой Insert(Вcтавить)/ Procedure(Процедуру). В появившемся окне необходимо выбрать функцию или подпрограмму и задать ее имя. После этого будут автоматически сформированы операторы начала и конца процедуры и можно переходить непосредственно к набору операторов процедуры. Для набора следующей процедуры в том же модуле необходимо повторить команду Insert/Procedure. Если нужно создать новый модуль повторяется команда Insert/Module.

Запись команд, составляющих макросы и функ­ции, выполняется в окне Code с помощью редактора программ. Редактор программ VBA – это обычный текстовый редактор, об­ладающий стандартным набором возможностей типичного текстового редактора (например, WordPad). Однако он дополнен рядом специали­зированных функций. Например, его можно настроить таким образом, чтобы при написании пользователем части служебного слова он мог самостоятельно дополнять это слово. Это, с одной стороны, ускоряет ввод текста команд, а с другой — уменьшает вероятность ошибок. Слу­жебные слова можно писать буквами одного размера - например, строч­ными. При переходе на другую строку, если в команде не было допущено ошибок, все служебные слова, имена встроенных функций, объектов и их свойств автоматически записываются правильно. Например, если напи­сать "activesheet", то при переходе на другую строку это слово будет пре­образовано в "ActiveSheet". Такая возможность обеспечивает дополнительный контроль правильности написания служебных слов. Проверка правописания осуществляется командой Debug(Отладка)/Compile VBAProject(компилировать).