Подпрограмма-процедура
Можно упростить программирование, разбивая задачу на небольшие компоненты.
Процедуры позволяют разбивать программы на конечное число логических единиц, каждую из которых легче отладить, чем всю программу без процедур
Процедуры, разработанные для одной программы, могут выступать в качестве строительных блоков для других программ, обычно с небольшими изменениями или совсем без них
В VBA используется несколько видов процедур:
Процедуры Sub (не возвращают значения)
Процедуры Function (возвращают значения)
Процедуры Property (могут возвращать и присваивать значения), а также устанавливать ссылки на объекты.
Процедуры Sub
Процедура Sub (или подпрограмма) - это блок кода, который выполняется в ответ на событие. Разбивая код модуля на процедуры Sub, намного легче читать или модифицировать код приложения.
Синтаксис процедуры Sub таков:
[Private | Public][Static]Sub <Имя процедуры> (<аргументы>)
<Операторы>
End Sub
При вызове процедуры выполняются операторы между ключевыми словами Sub и End Sub. Процедуры Sub можно помещать в стандартные модули, модули классов и форм. По умолчанию процедуры Sub во всех модулях имеют атрибут public, который означает, что их можно вызывать из любого места приложения.
Общие процедуры
VBA содержит встроенные или стандартные функции, например, sqr, cos или chr. Кроме того, с помощью оператора Function можно писать собственные процедуры Function. Эти функции называют нестандартные или пользовательскими. Синтаксис процедуры Function таков: [Private|Public][Static]Function <имя процедуры> (<аргументы>) [As type <имя типа>]
<операторы>
End Function Приведем конкретный пример: Public Funcstion kub(b As integer) As Integer
i = b*b*b
kub = i
End Function
Как и процедура Sub, процедура Function является самостоятельной и может принимать параметры, выполнять ряд операторов и изменять значения своих параметров. В отличие от процедуры Sub, имя процедуры Function может возвращать значение в вызывающую процедуру. Существуют три различия между процедурами Sub и Function:
Возвращаемое процедурой Function значение присваивается самому имени <имя процедуры> процедуры. Возвращаемое процедурой Function значение можно использовать в выражениях в программе.
Как и переменные процедуры Function имеют тип, который определяет тип возвращаемого значения. (В отсутствие ключевого слова As в операторе определения процедуры ей назначается по умолчанию тип variant.)
Вызов процедуры Function, или просто функции, в основном осуществляется заданием ее имени и параметров в правой части большого оператора или в составе выражения.
Вот, например, функция, вычисляющая гипотенузу прямоугольного треугольника при заданных катетах:
Function pifagor (A As Integer, В As Integer) As double
Hypotenuse = Sqr(A^2 + В^2)
End Function
В VBA процедура Function вызывается точно так же, как и любая встроенная функция:
s = pifagor(d,f )
Начало работы с VBA в EXCEL. В Excel 2003 Редактор VBA открывается с помощью комбинации клавиш ALT+F11, либо с помощью меню: Сервис-макрос-редактор Visual Basic.
Рис.1. В Excel 2007 Редактор VBA открывается с помощью комбинации клавиш ALT+F11, либо с помощью вкладки Разработчик, на которой можно вызвать редактор Visual Basic и другие инструменты разработчика. Поскольку в Office 2007 вкладка Разработчик не показана по умолчанию, необходимо вывести ее на экран, выполнив следующее:
На вкладке Файл выберите Параметры, чтобы открыть диалоговое окно Параметры Excel.
Рис.2.
Рис.3.
|