Константы VBA
Константа - это значение в программе VBA, которое не изменяется.
Константы можно использовать как аргументы для процедур, в математических операциях, операциях сравнения и пр.
Константы бывают литеральными и именованными.
Литеральная константа - это константа (число, строковое выражение, дата), расположенная непосредственно в коде.
Например: X = Y + 2
Здесь число 2 является литеральной константой.
Именованная константа, как правило, объявляется в начале модуля или процедуры (аналогично переменной) и предназначена для удобства читания и понимания программного кода. Например, более целесообразно использовать в коде программы именованную константу Pi (которой присвоено значение 3,14), чем литеральную константу 3,14. Согласитесь, что выражение
S = Pi * R* R
Более "понятно", чем
S = 3.14 * R * R
Другим веским фактором в пользу именованных констант служит то обстоятельство, что изменив значение константы один раз, эти изменения мгновенно произойдут во всем программном коде. Литеральную константу надо искать и изменять в теле кода "вручную", на что может уйти довольно значительное время.
Однако не стоит использовать именованные константы сплошь и рядом, т.к. код может стать абсолютно нечитабельным, а вы сами запутаетесь, что и где находится.
Литеральные константы
Существует несколько правил, которые необходимо соблюдать при написании литеральных констант.
Константы String
- Строковые константы должны быть заключены в двойные кавычки (");
- Пустая строковая константа (так называемая "нулевая строка") обозначается двумя двойными кавычками, между которыми ничего нет ("");
- Строковая константа обязательно должна вся находиться на одной строке.
Численные константы
- Численные константы могут содержать любой из численных типов VBA;
- Численные константы должны состоять только из числовых символов от 0 до 9;
- Численная константа может начинаться со знака (-) и может содержать десятичную точку;
- Можно использовать экспоненциальное представление для численных констант;
- Никакие другие символы или знаки не допускаются в численных константах.
Константы Date
- Константы Date необходимо помещать между знаками фунта (#), при этом формат задания даты может быть различным:
#3-5-99#
#February 13, 2008 10:15am#
#Jun-20-2005#
# 9 April 1998# - VBA переформатирует дату к следующему виду: #4/9/1998#
- Если пропустить знак фунта (#) при записи литеральной константы даты, VBA не сможет правильно интерпретировать константу даты как дату;
- Нельзя заключать литеральные константы даты в двойные кавычки, т.к. в этом случае VBA распознает такую константу как строковую.
Константы 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.