Константа – это значение в коде программы VBA, которое не меняется на протяжении всего хода выполнения программы.
Использование констант делает код программы более читабельным и упрощает внесение исправлений в него.
В языке программирования VBA используют константы двух типов – литеральные и символические (именованные).
В данном уроке мы рассмотрим особенности объявления констант обоих вышеупомянутых типов, с простым примером VBA кода.
Быстрые ссылки:
Литеральные константы в VBA
Литеральная константа – это такая константа, действительное значение которой (число, строка, дата) записывается непосредственно в коде программы.
Например:
A=B+4
где,
- A, B – переменные;
- Число 4 – литеральная константа.
Особенности использования литеральных констант
При написании литеральных констант нужно придерживаться определённых правил.
Строковые константы:
- Строковые литеральные константы записываются в двойных кавычках ("константа");
- Пустая строковая константа (её ещё называют «нулевая строка») записывается с помощью двух двойных кавычек, между которыми ничего нет ("");
- Весь код строковой константы обязательно должен быть написанным в одной строке.
Числовые константы:
- Числовые константы записываются без специального форматирования (без двойных кавычек, или каких-либо других символов);
- Числовые константы должны состоять только из числовых символов от 0 до 9 и могут содержать в себе любой из числовых типов VBA (никакие другие символы или знаки кроме цифр – не допускаются);
- Числовые константы могут начинаться со знака (-) и могут содержать десятичную точку;
- Для числовых констант можно использовать экспоненциальное представление.
Константы даты (Date):
Даты в константах записываются между двумя знаками решётки (#), при этом допускается самый разнообразный формат даты.
Например, можно использовать следующие форматы:
- #2-11-22#
- #February 15, 2022 10:15am#
- #Jun-20-2022#
- #9 April 2022# (VBA преобразует эту дату в следующий вид: #4/9/2022#)
Результат вывода этих дат будет следующим:
- 11.02.2022
- 15.02.2022 10:15:00
- 20.06.2022
- 09.04.2022
Константы логического типа (Boolean):
Константы логического типа бывают только True, или False. Их запрещено брать в кавычки, или сокращать.
Символические (именованные) константы в VBA
Символическая (именованная) константа так же, как и переменная имеет присвоенное ей имя. Но в отличие от переменной, значение именованной константы никогда не меняется на протяжении выполнения всего кода программы.
Обычно, именованные константы применяют для хранения тех значений, которые будут использоваться в программе несколько раз. Это очень удобно. Ведь если вам нужно будет изменить это значение, то достаточно будет отредактировать одну константу, а не искать нужное значение по всему коду. Также, символические (именованные) константы делают код более читабельным.
Например, если нам нужно многократно использовать в выражениях число 5, то намного целесообразнее объявить именованную константу (например, myNum) и присвоить ей значение 5, чем каждый раз использовать литеральную константу 5.
Для того чтобы вы лучше поняли в чём разница между литеральными и символическими (именованными) константами, я подготовил 2 примера.
Пример использования литеральной константы
Sub testConst()
Dim A, B As Double 'числовые переменные с плавающей запятой
B = 1.25 'присвоили значение переменной B
A = 5 + B 'сложение числа 5 и значения переменной B (1,25)
MsgBox A 'выводим сообщение с результатом (6,25)
End Sub
Пример использования именованной константы
Sub testConst()
Const myNum = 5 'константа myNum (значение 5)
Dim A, B As Double 'числовые переменные с плавающей запятой
B = 1.25 'присвоили значение переменной B
A = myNum + B 'сложение значения константы myNum (5) и значения переменной B (1)
MsgBox A 'выводим сообщение с результатом (6,25)
End Sub
Как видите, код во втором примере читается лучше. Ведь мы сразу понимаем, что объявленная константа myNum содержит в себе значение 5. И если мы будем использовать эту константу несколько раз для вычислений, а потом вдруг решим поменять значение 5 на какое-нибудь другое, например 6, то достаточно будет внести изменения всего лишь в одну строчку кода. А вот если использовать в коде вместо константы несколько раз 5, то нам придётся вручную искать, где именно нужно 5 поменять на 6.
Особенности использования символических (именованных) констант
При создании и объявлении символических (именованных) констант рекомендуется придерживаться тех же правил, что и при работе с переменными.
Объявляют символические (именованные) константы с помощью ключевого слова Const.
Как правило, символические константы объявляются в самом начале модуля, или процедуры. Если константа объявлена в процедуре, то областью её действия будет только эта процедура. Если константа объявлена в области определений модуля, то она будет доступна всем процедурам данного модуля. И я рекомендую объявлять константы именно на модульном уровне, чтобы предотвратить повторение, или дублирование литеральных констант.
Тип данных при определении констант указывать необязательно. Если при объявлении константы вы не указали тип данных, то VBA будет использовать тот тип, который является наиболее подходящим для заданного значения. Например, константа, содержащая в себе строку символов, по умолчанию будет сохранена с типом String.
Но если вам нужно сохранить константу с определённым типом данных, то тогда можно явно задать этот тип данных при её объявлении. Например, для числа Пи мы можем явно задать тип константы Single:
Const Pi As Single = 3.14
Внутренние константы в VBA
Внутренняя константа – это именованная константа, которая была определена разработчиками VBA.
Для того чтобы увидеть полный список внутренних констант доступных в языке программирования VBA нужно:
- Открыть любой документ Word, или рабочую книгу Excel.
- Активизировать редактор VBA, нажав клавиши Alt+F11.
- Вызвать окно Object Browser, нажав клавишу F2.
- Выбрать в появившемся окне в списке Classes значение Constants.
После этого, в правом поле окна Object Browser появится список внутренних констант языка VBA.
Чтобы получить информацию о конкретной константе из этого списка, нужно выбрать её имя в поле списка Members of 'Constants', после чего в нижней части окна Object Browser отобразится имя выбранной вами константы и её значение. А чтобы получить подробную информацию об этой константе, нужно кликнуть по кнопке Help в окне Object Browser.
Рисунок. Внутренние константы в VBA
Помимо внутренних констант VBA существуют ещё и внутренние константы, определяемые host-приложениями. Так, Excel содержит внутренние константы для использования с рабочими книгами электронных таблиц. Word содержит внутренние константы для работы с документами и шаблонами текстового редактора. А Access содержит внутренние константы для операций с базами данных.
Имена внутренних констант, определяемых VBA, начинаются с букв vb. Константы определяемые Excel начинаются с букв xl, Word – с букв wd, Access – с букв ac.