Области видимости
Любая программа на VBA представлена в виде проекта. Проект - это совокупность программных модулей различных типов. В свою очередь модуль - это основная программная единица уровня проекта, в которой размещаются определения переменных, констант, типов, подпрограмм и т.д.
МОДУЛИ VBA
Прерывание подпрограммы
В случае необходимости, выполнение процедуры или функции может быть прервано досрочно. Для этого нужно использовать инструкцию прерывания Exit Sub. В этом случае синтаксис объявления примет следующий вид (на примере объявления процедуры):
Sub <имяПроцедуры> [(<списокпараметров>)] <операторы> Exit Sub <операторы> End SubVisual 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. Такие переменные являются статическими и сохраняют значения между вызовами.