Области видимости

Любая программа на VBA представлена в виде проекта. Проект - это совокупность программных модулей различных типов. В свою очередь модуль - это основная программная единица уровня проекта, в которой размещаются определения переменных, констант, типов, подпрограмм и т.д.

МОДУЛИ VBA

Прерывание подпрограммы

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

Sub <имяПроцедуры> [(<списокпараметров>)] <операторы> Exit Sub <операторы> End Sub

Visual Basic поддерживает три типа модулей, которые могут быть включены в проект и использованы:

· Стандартные модули - это модули, в которых можно описать доступные во всем проекте процедуры.

· Модули классов содержат описание свойств, методов и событий пользовательских классов.

· Модули форм содержат процедуры обработки событий, генерируемых элементами управления в формах проекта.

Структура модуля VBA включает два неявных (т.е. не требующих специального описания) раздела: общий (General) и объявлений (Declarations). В общем разделе задаются параметры среды (Option Base, Option Explicit), приводятся описания глобальных переменных, констант и типов. Раздел объявлений предназначен для описания процедур и функций.

VBA поддерживает две области видимости для переменных и подпрограмм: локальную и глобальную.

Локальные переменные определены на уровне подпрограммы с помощью ключевых слов Dim или Static. Они доступны только внутри этой подпрограммы и по выходу из нее уничтожаются. Глобальные переменные объявляются на уровне модуля. Такие переменные доступны:

· для всех подпрограмм модуля, в котором они объявлены (при объявлении с ключевым словом Private, либо Dim);

· для всего приложения – при объявлении с ключевым словом Public;

Подпрограммы VBA могут быть объявлены на двух уровнях – уровне проекта (Public) и уровне модуля (Private). Например:

Public Sub Query(price, count) ' видимость на уровне проекта Private Sub Sub Query(price, count) ' видимость на уровне модуля

По умолчанию используется уровень проекта.

При описании локальных переменных можно использовать ключевое слово Static. Такие переменные являются статическими и сохраняют значения между вызовами.