Константа – це значення коду програми 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.