logo search
информ

19)Процедуры ,процедуры-функции. Общие процедуры .Процедуры обработки событий .Объявление переменных

[Область видимости] Sub Имя_Процедуры (Список_Параметров)

[раздел описаний (констант и переменных)]

тело процедуры (операторы)

End Sub

[Область видимости] – указывают Public, если процедура глобальная и доступна (видна) из других модулей, либо Private, если процедура локальная и доступна (видна) только внутри данного модуля и не может быть вызвана из других модулей. Sub – зарезервированное слово VBA объявляет начало процедуры, за ним задается имя_процедуры, в скобках указывается список параметров, передаваемых при вызове процедуры из программы (список параметров может отсутствовать). Список_Параметров – список переменных, передаваемых процедуре при вызове ее из другой процедуры: Имя_Параметра As Тип_Данных, As – зарезервированное слово VBA указывает, что за ним следует тип переменной. [раздел описаний (констант и переменных)] – раздел описания констант и переменных.

Определение: константа — это поименованная область памяти для хранения данных, значение которым присваивается при определении константы; значения остаются посто­янными и не могут быть изменены во время выполнения программы.

Для определения констант служит зарезервированное слово Const.

Синтаксис описания констант:

Const Имя_Константы As Тип = значение

Например:

' Объявлена числовая константа для хранения

'значения числа Pi

Const Pi As Single = 3.1415926

где Const (Константа) — зарезервированное слово, которое сообщает VBA, что декларируется константа и резервируется область памяти для ее хранения; Имя_Константы — имя константы, не входящее в перечень зарезервированных слов VBA; As (Как) — зарезервированное слово, которое сообщает VBA, что определяется тип данных константы; Тип — Тип_константы определяет размер памяти занимаемой константой (прил. 2, п.1.6, табл. 4). При наборе программы в среда редактора VBA после набора зарезервированного слова As раскрывается список типов объектов и базовые Типы_Дынных. Выбранный в списке Тип_Данных устанавливается двойным щелчком мыши, нажатием клавиши <Таb> или нажатием клавиши <Enter>. Определение: переменная — это поименованная область памяти для хранения данных, которые могут изменяться в процессе выполнения программы.

Поскольку в VBA имеются определенные соглашения по отношению имени и типа переменной, то во избежание путаницы типов данных, переменные необходимо описывать или декларировать. Синтаксис описания переменных: Dim [Static] Имя_Переменной [ As Тип] где Dim (Определить) — зарезервированное слово, которое сообщает VBA, что декларируется переменная и резервируется область памяти для ее хранения. Имя_Переменной — имя переменной, не входящее в перечень ключевых слов VBA. As (Как) — зарезервированное слово, которое сообщает VBA, что определяется тип данных для переменной. Тип — Тип_переменной определяет размер памяти занимаемой переменной (прил. 2, п.1.6, табл. 4). Static (Статический) — зарезервированное слово VBA, позволяет сохранить значение переменной между вызовами процедуры, в которой она объявлена, инструкция Static используется только на уровне процедуры.

Тело процедуры (операторы) – алгоритм записанный на языке VBA.

End Sub – операторная скобка, указывающая на конец процедуры. Каждому оператору Sub обязательно соответствует End Sub.

Примечание: В разделе [раздел описаний (констант и переменных)] сначала описываются все константы, а затем все переменные. [раздел описаний (констант и переменных)] не является обязательным в процедурах.

Область видимости переменных и констант (три уровня):

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

2) Для того чтобы значения определенных констант и переменных были доступны всем процедурам данного модуля, надо их объявить в области общих объявлений модуля (General Declarations), перед словом Dim поставить слово Private. Такие переменные и константы видимы на уровне модуля.

3) Для того чтобы переменные и константы модуля можно было использовать в любой процедуре любого модуля данного приложения, необходимо описать их как глобальные. Нужно помнить, что они находятся в оперативной памяти все время выполнения приложения и, следовательно, потребляют системные ресурсы. Глобальные переменные объявляются в области общих объявлений модуля, перед словом Dim ставится слово Public.

Аналогично описываются в области общих объявления модуля константы:

[Public|Private] Const Имя_Константы As Тип = значение

Но если в верхней части окна модуля есть оператор Option Explicit, то необходимо описать все переменные и константы.

Инструкция Option Explicit в секции General находится в модуле до всех процедур.При использовании инструкции Option Explicit необходимо явно описать все переменные с помощью инструкций Dim, Private, Public, ReDim или Static. При попытке использовать неописанное имя переменной возникает ошибка во время компиляции

Процедуры обработки событий (Процедура_Событие)

Событие (event) – это действие над объектом (например: нажатие командной кнопки, выполнение директивы меню, открытие или закрытие таблицы Excel и т.п.) Имя Процедуры_События состоит из имени объекта и действия (События), которые объединяются символом подчеркивания “_”.

Синтаксис Процедуры_События:

Private Sub ИмяОбъекта_Событие ( )

тело процедуры (операторы)

End Sub

Общее между общей процедурой и Процедурой_События зарезервированное слово Sub. Принципиальное отличие общей процедуры от Процедуры_События заключается в том, что для общей процедуры имя подбирает пользователь,адляПроцедуры_События имя создаётся средойVBA