HTML, Excel, Word, SEOОсновы VBA ⇒ Константы VBA

Константы VBA


Константа - это значение в программе VBA, которое не изменяется.

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

Константы бывают литеральными и именованными.


Литеральная константа - это константа (число, строковое выражение, дата), расположенная непосредственно в коде.


Например: X = Y + 2


Здесь число 2 является литеральной константой.


Именованная константа, как правило, объявляется в начале модуля или процедуры (аналогично переменной) и предназначена для удобства читания и понимания программного кода. Например, более целесообразно использовать в коде программы именованную константу Pi (которой присвоено значение 3,14), чем литеральную константу 3,14. Согласитесь, что выражение
S = Pi * R* R
Более "понятно", чем
S = 3.14 * R * R

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

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

Литеральные константы

Существует несколько правил, которые необходимо соблюдать при написании литеральных констант.

Константы String

Численные константы

Константы Date

Константы Boolean

Существуют только два вида констант типа Boolean: True, False. При этом их нельзя брать в кавычки или сокращать.

Именованные константы

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

Для объявления именованной константы предназначено ключевое слово Const


Синтаксис

Const name_1 = value_1 [opetator name_2..] [, name_3 =..]

Name_N - любой допустимый идентификатор имени константы;
Value_N - любое значение данных;
Opetator - арифметическая или операция сравнения между двумя именами ранее описанных констант.


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

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



Задание типа константы

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

В VBA можно задавать тип константы (по аналогии с переменными). Но в отличие от переменных нельзя задавать типы Object и Array. Например, в вышеприведенном листинге вполне уместно константе Pi задать тип Single
Const Pi As Single = 3.14

Внутренние константы

Внутренняя константа - это именованная константа, которая была определена разработчиками VBA.

Помимо внутренних констант VBA существуют внутренние константы для работы с host-приложениями. Так, Excel содержит внутренние константы для использования с рабочими книгами электронных таблиц. Аналогично, Word содержит внутренние константы для работы с документами и шаблонами текстового редактора, а Access - для операций с базами данных.

Внутренние константы, определяемые VBA, начинаются с букв vb. Внутренние константы Excel - xl; Word - wd.

Внутренние константы, определяемые host-приложением VBA (например, Excel, Word) упрощают использование различных свойств и методов, принадлежащих этому host-приложению.

Для того, чтобы увидеть полный список имеющихся в наличии внутренних констант необходимо использовать Object Browser. Его можно вызвать клавишей F2 в окне редактора VBA.