Объявление переменных и констант

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

Переменные

Переменные – это именованная область внутренней памяти, где хранятся данные указанного типа. Данные могут меняться в процессе выполнения программы.

Переменные подразделяются на простые и индексированные (переменные с индексом). Индексированными переменными являются элементы массивов.

До начала работы с переменной ей должно быть присвоено уникальное имя (можно использовать буквы латинского и русского алфавитов, строчные и прописные) и объявлен тип. Если имя переменной было объявлено SUM, а затем в тексте использовалось как sum, то редактор кода VBA автоматически заменит первое вхождение SUM на второе sum.

Желательно, чтобы имя переменной соответствовало смысловому использованию ее значений. В таком случае программа будет более понятна.

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

Для объявления переменных используются операторы Dim, Public, Private и Static. Первый - Dim можно использовать на обоих уровнях, Public и Private - на уровне модуля, Static - только на уровне процедуры.

В данном курсе будут использоваться только два оператора Dim и Public.

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

Если переменная или константа описана внутри процедуры с помощью оператора Dim, то она является локальной, то есть может использоваться только в пределах данной процедуры.

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

Глобальные переменные и константы объявляются в разделе Declarations, который есть у каждого модуля.

Константы

Константа– именованная область памяти, используемая для хранения фиксированного значения, которое невозможно изменить при выполнении программы.

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

Но в VBA можно объявлять именованные константы, задавая в момент объявления значение константы и, возможно, ее тип. Вообще объявление константы во многом напоминает объявление переменной. Однако в этот момент задается значение, которое уже нельзя изменить. Рассмотрим синтаксис оператора Const:



[Public] Const имя константы[As Тип] = константное выражение

Вот пример определения как глобальной классической константы:

Public Const pi As Double = 3.141593

Как и переменные, именованные константы можно объявлять на уровне процедуры или модуля. В первом случае используется только ключевое слово Const, во втором - дополнительно можно задать спецификатор Public, позволяющий объявить константу общей для всех модулей.

В языке предусмотрено множество встроенных констант, например, константы, связанные с приложениями Excel или Word, или константы самого VBA.

Объявление массивов

Массив– совокупность однотипных переменных с одним именем, каждая из которых называется элементом массива и имеет свой номер (индекс). Массив имеет размерность и длину (размер) по каждой размерности.

Размерность массива – это количество измерений или индексов. Массивы могут быть: одномерные (для нумерации элементов используется один индекс), двумерные (для нумерации элементов используются два индекса: номер строки, номер столбца) и N-мерные. Число измерений может достигать 60.

Массивы подразделяются на статические и динамические.

Статические массивы

Статическимназывается массив с заранее известным количеством элементов.

Синтаксис описания (объявления) статического массива:

DimИмя массива(верхняя граница) As Тип

В описании массива необходимо указывать верхнюю границу массива. В случае объявления многомерных массивов после имени в круглых скобках указывается список верхних границ по каждой размерности массива:

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

Синтаксически каждое измерение в списке отделяется запятой и определяется заданием нижней и верхней границы изменения индексов.

Синтаксис описания (объявления) статического массива с граничными парами:

DimИмя массива(Нижняя границаToВерхняя граница) AsТип

Динамические массивы

Динамическимназывается массив, размер которого определяется в ходе выполнения программы.

Синтаксис описания динамического массива:

Dim Имя массива() As Тип

Размер массива устанавливается с помощью оператораReDim:

ReDimИмя массива(размер по каждой размерности)

Рассмотрим пример. На уровне модуля объявим глобальный динамический массив Vector:

'Объявление динамического массиваPublic Vector() As Integer

В момент объявления размер динамического массива не указывается, соответственно не выделяется память. Все это произойдет позже, в процессе выполнения программы.

Ниже указывается фрагмент одной из возможных программ, работающих с массивом Vector. Его размер в момент работы с ним определяется в диалоге с пользователем.

Операторы VBA

VBA — операторный язык. Это значит, что его программы (процедуры или функции) представляют последовательности операторов.

В языке VBA можно выделить следующие группы операторов:

1. декларативные операторы, предназначенные для описания объектов, с которыми работает программа (типов переменных, констант и массивов и др.),

2. операторы-комментарии,

3. операторы присваивания и изменения значений объектов,

4. операторы, управляющие ходом вычислений (условный, циклический, перехода).

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

Оператор комментария

Комментарии на исполнение программы не влияют, но необходимы для понимания алгоритма. Поскольку программы неоднократно модернизируются, необходимо использовать комментарии, чтобы вспомнить алгоритм и правильно изменить его.

Любая строка текста программы может заканчиваться комментарием. Комментарий в VBA начинается апострофом (') и включает любой текст, расположенный правее в строке.

Например,

weight= weight+z 'Увеличение весаvalue=weight*price 'Новая стоимость

Оператор присваивания

Операторы присваивания — основное средство изменения состояния программы (значений переменных). Он представляет собой конструкцию, связывающую знаком = переменную (левая часть) и выражение (правая часть). Выражение состоит из операндов (имен переменных, констант, имен стандартных функций) и знаков операций (арифметических, логических, строковых, сравнения). Смысл этого оператора состоит в том, что левой части присваивается значение правой части.

Управляющие операторы

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

Условный оператор If Then Else End If

Это общепринятый в языках программирования оператор управления вычислениями позволяет выбирать и выполнять действия в зависимости от истинности некоторого условия.

Синтаксис

If условие Then операторы1 Else операторы2 End If

Здесь условие обязательно и может быть числовым или строковым выражением со значениями True или False (Null трактуется как False). Операторы1 и операторы2 — это последовательности из одного или нескольких разделенных двоеточием операторов. Закрывающий оператор End If необходим.

Семантика

Если условие истинно (True), выполняется последовательность «операторы1», ложно (False) – «операторы2».

Операторы цикла

Циклы используются для организации повторного выполнения блоков кода. Любой цикл состоит из двух частей: условие циклаи тело цикла. У любого цикла есть параметр. Параметр цикла– это переменная, которая изменяется в теле цикла, а также участвует в условии его окончания.

Цикл For Next

Позволяет повторять группу операторов заданное число раз.

Наши рекомендации