Несмотря на то что типы Variant удобны и избавляют от некоторой части работы при написании процедур, они требуют большего объема памяти, чем любой другой тип данных, за исключением больших строк. Кроме того, математические операции и операции сравнения над данными типа Variant выполняются медленнее, чем подобные операции над данными любого другого типа.
Переменная – это имя, которое разработчик программы дает области компьютерной памяти, используемой для хранения данных какого-либо типа. Переменная представляет числа, текстовые данные или другую информацию, которая точно не известна во время написания оператора, но будет в наличии и доступна при выполнении этого оператора.
Идентификатор – это имя переменной. При выборе имени переменной необходимо соблюдать следующие правила:
• имя переменной должно начинаться с буквы алфавита;
• после первой буквы имя переменной может состоять из любой комбинации цифр, букв или символов подчеркивания;
• имена переменных не могут содержать символов, используемых для математических операций, а также знака точки и пробела;
• имя переменной не должно превышать 255 символов;
• имя переменной не должно дублировать определенные ключевые слова vba.
Самым простым способом создания переменной является использование ее в операторе VBA. VBA создает переменную и тут же резервирует ячейку памяти для данной переменной.
Сохранение значения данных в переменной называется присваиванием переменной. Присваивание выполняется с помощью оператора присваивания, представляемого знаком (=). Например, А = 145.
Создание переменной путем ее использования в операторе называется неявным объявлением переменной. Все переменные, которые VBA создает неявным объявлением переменной, имеют тип данных Variant.
VBA предоставляет возможность выполнять явное объявление переменных. Объявлять переменные явно лучше в начале программы, как это делается во всех языках программирования.
Явно объявить переменную можно как в начале блока, так и в том произвольном месте, где возникла необходимость использовать новую переменную. При объявлении переменной определяются ее тип и область видимости – область, где имя переменной видимо и, значит, возможен доступ к ее значению. Переменные можно объявлять на двух уровнях – уровне процедуры и уровне модуля.
Для объявления переменных используются операторы Dim, Public, Private и Static. Первый можно использовать на обоих уровнях, Public, Private – на уровне модуля, Static – только на уровне процедуры.
Объявление простых переменных имеет следующий синтаксис:
Dim <имя переменной1, имя переменной2,…> As <имя типа>
или
Dim <имя переменной1> As <имя типа1>, <имя переменной2> As <имя типа2>,<имя переменной3> As <имя типа3>, …
Примечание. Все переменные, которые создаются просто ключевым словом Dim, являются переменными типа Variant. Если используется ключевое слово As, то объявляемая переменная называется типизированной.
Примеры объявлений типизированных констант:
Dim ключ As single
Dim стоимость Аs currency
Dim дата_рождения AS Date
Dim письмо Аs string
Явное объявление переменных имеет следующие преимущества:
• ускоряется выполнение кода, так как vba создает все объявленные явно переменные в модуле или процедуре перед выполнением кода процедуры;
• скорость выполнения кода увеличивается на то количество времени, которое необходимо для анализа и создания неявно объявляемых переменных;
• уменьшается количество ошибок в результате неправильного написания имени переменной;
• код становится легко читаемым и понятным, так как легко можно определить, какие переменные используются в этом модуле или процедуре.