Офисное программирование
Шрифт:
Даты можно вычитать одну из другой, добавлять к дате или вычитать числа для изменения ее значения. Например, если необходимо определить количество дней между двумя датами, просто необходимо вычесть более раннюю дату из более поздней даты. Поскольку это значения типа Date, VBA «знает», что целью вычисления является получение разности в днях между двумя этими датами. Аналогично, если необходимо определить дату через 60 дней после определенной даты, необходимо прибавить 60 к этой дате.
Во многих языках программирования, в том числе и в VBA-программе, рабочая программа должна «принять» решение, являются ли истинными
Тип данных Variant – это особый тип данных, который может сохранять любые типы, приведенные в табл. 1, за исключением типа Object. VBA использует тип Variant для всех переменных, если в теле программы не объявлялся явно тип этих переменных.
Данные типа Variant принимают характеристики определенного типа, который они сохраняют в этот момент. Например, если данные типа Variant содержат строковые данные, Variant принимает характеристики типа String. Если данные типа Variant содержат численные данные, Variant принимает характеристики какого-либо численного типа, обычно Double, хотя типы Variant могут также иметь характеристики типов Integer, Long, Single или Currency.
Несмотря на то что типы Variant удобны и избавляют от некоторой части работы при написании процедур, они требуют большего объема памяти, чем любой другой тип данных, за исключением больших строк. Кроме того, математические операции и операции сравнения над данными типа Variant выполняются медленнее, чем подобные операции над данными любого другого типа.
Переменная – это имя, которое разработчик программы дает области компьютерной памяти, используемой для хранения данных какого-либо типа. Переменная представляет числа, текстовые данные или другую информацию, которая точно не известна во время написания оператора, но будет в наличии и доступна при выполнении этого оператора.
Идентификатор – это имя переменной. При выборе имени переменной необходимо соблюдать следующие правила:
• имя переменной должно начинаться с буквы алфавита;
• после первой буквы имя переменной может состоять из любой комбинации цифр, букв или символов подчеркивания;
• имена переменных не могут содержать символов, используемых для математических операций, а также знака точки и пробела;
• имя переменной не должно превышать 255 символов;
• имя переменной не должно дублировать определенные ключевые слова vba.
Самым простым способом создания переменной является использование ее в операторе VBA. VBA создает переменную и тут же резервирует ячейку памяти для данной переменной.
Сохранение значения данных в переменной называется присваиванием переменной. Присваивание выполняется с помощью оператора присваивания, представляемого знаком (=). Например, А = 145.
Создание переменной
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 создает все объявленные явно переменные в модуле или процедуре перед выполнением кода процедуры;
• скорость выполнения кода увеличивается на то количество времени, которое необходимо для анализа и создания неявно объявляемых переменных;
• уменьшается количество ошибок в результате неправильного написания имени переменной;
• код становится легко читаемым и понятным, так как легко можно определить, какие переменные используются в этом модуле или процедуре.
Примечание. Имена переменных не «чувствительны» к состоянию регистра, т. е. переменные f и F в программе означают одно и то же.
Константа – это значение в программе VBA, которое не меняется. Существует несколько типов констант.
Именованные константы – константы, имеющие заданное имя; это имя имеет конкретное неизменяемое значение.
В отличие от переменной, необходимо всегда явно объявлять именованные константы, используя ключевое слово Const.
Следует помещать объявления констант на модульном уровне, чтобы у них была наибольшая область действия.