Пример 19.11.

Переменные

Переменной называется поименованная область в памяти компьютера во время выполнения программы.

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

Разрешенное имя переменной Неразрешенное имя переменной Комментарий
ПРИмер; приМЕР; EXAMPLE; example   Нет различия прописных и строчных букв, кириллицы и латиницы в написании имен
Тарифная_ставка_1_разряда; Tax_off_1_class   Для улучшения семантики переменные могут состоять из отдельных слов, соединенных знаком_
  Тарифная ставка $; #room; Class&subclass Нельзя использовать пробелы в имени переменной, а также специальные символы типа: #$%&!

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

Каждая переменная имеет определенный тип значений и сферу действия, в противном случае ей приписывается тип Variant. На рис. 19.21 показана сфера действия переменных.

Рис. 19.21. Сфера действия переменных в программе на языке VBA

Переменные, объявленные только в процедуре, действуют в пределах процедуры. Объявление переменной на уровне .модуля делает ее доступной для всех процедур модуля. При этом допускается переопределение имени переменной во вложенных процедурах. Для использования переменной во всех вложенных процедурах и модулях она объявляется глобальной на уровне внешнего модуля (например, переменная Var0 доступна всем вложенным модулям и их процедурам).

Пример 19.12. Переменные var4 var5 используются только в самих процедурах. Переменная var2 объявлена в процедурах 1 и 2. Это соответствует двум различным переменным с одинаковым именем и своей сферой действия (они имеют разные значения и/или типы данных, независимы друг от друга). Переменные на уровне модуля, var1 - в модуле 1 и var3 - в модуле 2. используются во всех вложенных в модуль процедурах. Переменная var1 предопределена в процедуре 1, но сохраняет свое значение в процедуре 2; переменная var3 предопределена в процедуре 3.

Переменные в модуле объявляются с помощью операторов различных типов:

  • локальные переменные

Dim <var> As <type>, <var> As <type>, <var> As <type>, . . .

глобальные переменные

Public <var> As <type>, <var> As <type>, <var> As <type>, . . .

где <var> - имя переменной;

<type>- встроенный тип данных переменной.