10.3. Константи та змінні у мові vba та їх опис
Якщо програмний код процедури передбачає використання деяких постійних значень, які в принципі не змінюватимуться за жодних обставин під час виконання цієї процедури, то з цією метою використовують константи. Константи зустрічаються у процедурах у явному вигляді або у вигляді імен. В останньому випадку оголошення констант здійснюють за допомогою оператора Const, який має такий формат:
Сonst <ім’я константи> [As<Type>] = <значення константи>
[, <ім’я константи> [As<Type>] = <значення константи>] …
У цьому форматі:
-
< ім’я константи>- це ім’я константи, яка оголошується, записане за правилами запису імен констант та змінних;
-
<Type> - тип константи, що оголошується; типи даних розглянемо у цьому розділі дещо нижче;
-
<значення константи> - конкретне значення константи.
Приклади опису констант:
Const Name As String = “Петро”
Const I As Integer = 10
Const Довжина As Single = 5.20
Const Ширина As Single = 6.40
Необхідно зазначити, що у мові VBA є багато власних констант, які користувач має право використовувати. Ці константи починаються з префікса vb:
-
vbBlue – константа , яка представляє числовий код для синього кольору , що дорівнює 16 711 680;
-
vbKeyTab – константа , яка представляє числовий код клавіші Tab, а саме 9;
VBA- програми, що працюють з додатками Excel, використовують також константи, які є характерними для цього середовища, наприклад:
xlBar Stacked –константа, яка представляє числовий код для лінійчатої діаграми, а саме 58.
Під змінною у мові VBA розуміють поіменовану частину пам’яті, у якій передбачається зберігати такі значення, які під час роботи проекту можуть змінюватися. Отже, принципова відмінність між константами та змінними полягає в тому, що перші під час роботи проекту ніколи не змінюють своїх значень, а другі можуть змінювати свої значення. Змінні у програмному коді проекту зустрічаються тільки у вигляді імен.
Імена констант та змінних записуються за певними правилами, наведеними нижче:
-
для запису імен констант та змінних можна використовувати:
-
букви;
-
арабські цифри;
-
знак нижнього підкреслювання;
-
в іменах констант та змінних можна використовувати як латинські букви, так і букви національних алфавітів;
-
заборонено використовувати в іменах констант та змінних спеціальні символи, як от: $, & та інші;
-
великі та малі букви в іменах використовуються, однак не розрізняються;
-
ім’я константи або змінної не може бути службовим словом, іменем функції або оператора;
-
довжина імен констант та змінних не повинна перевищувати 255 символів (40 символів – у випадку імен форм та елементів управління):
-
в іменах констант та змінних рекомендується вживати префікси та суфікси для позначення їх типів.
Перш ніж використати ім’я якої-небудь змінної у процедурі, рекомендується описати цю змінну у розділі оголошень процедури або у розділі оголошень модуля. З цією метою використовуються оператори Dim, Public, Private, Static. Найбільш уживаний із них - оператор Dim.
Формат оператора Dim наступний:
Dim <ім’я змінної> [As<Type>] [,<ім’я змінної> [As<Type>] ] …
У цьому форматі:
< ім’я змінної> - це ім’я тієї змінної, яка описується даним оператором Dim - зрозуміло, воно повинно бути записане за правилами запису імен простих змінних;
<Type> - тип даних, до якого належить дана змінна; це один із типів, наведених у таблиці 10.1.
Аналогічно оголошуються змінні за допомогою операторів Public, Private, Static, про що йтиметься далі.
Приклади опису імен змінних:
Dim sName As String
Dim I As Integer, J As Integer
Dim LessonNumber As Long
Dim Height As Single, Width As Single
Dim Ширина As Single, Довжина As Single
Будь-яка змінна, яка не оголошена за допомогою операторів Dim, Public, Private або Static, розуміється комп’ютером за замовчуванням як змінна типу Variant.
Таблиця 10.1. Стандартні типи даних VBA
Тип даних |
Назва типу |
Розмір пам’яті у байтах |
Кількість значущих цифр |
Що зберігає |
Діапазон значень |
Byte |
Байт |
1 |
3 |
Цілі числа без знаку |
0...255 |
Boolean |
Булівський, логічний |
2 |
1 |
Логічні значення |
True або False (Истина або Ложь) |
Integer |
Ціле |
2 |
5 |
Цілі числа зі знаком |
-32 768 … 32767 |
Long |
Довге ціле |
4 |
10 |
Цілі числа зі знаком |
-2 147 483 648 …2 147 483 647 |
Single |
Одинарної точності |
4 |
7 |
Дробові числа з плаваючою комою одинарної точності |
-3.402823 Е+38..-1.401298Е-45 -1.401298Е-45..3.402823Е+38 |
Double |
Подвійної точності |
8 |
15 |
Дробові числа з плаваючою комою подвійної точності |
-1.797 693 134 862 32 Е+308.. -4.940 656 458 412 47 Е-324 та 4.940 656 458 412 47 Е-324 … 1.797 693 134 862 32 Е+308 |
Currency |
Грошовий |
8 |
19 |
Дробові числа з фіксованою комою з 4-ма знаками після коми |
-922 337 203 685 477.5808 … 922 337 203 685 477.5807 |
Date |
Дата |
8 |
|
Дату |
Від 1.01.100 р до 31.12.9999 р |
Object |
Об’єкт |
4 |
|
Посилання на будь-який об’єкт |
|
String |
Стрічковий змінної довжини |
10+1 байт на сим-вол |
|
Стрічкове значення |
Від 0 до приблизно 2 млрд. символів |
String |
Стрічковий фіксованої довжини |
1 байт на сим-вол |
|
Стрічкове значення |
Від 0 до приблизно 65535 символів |
Variant |
Універса- льний числовий |
16 |
|
Числове значення |
Будь-яке числове значення з діапазону типу Double |
Variant |
Універса-льний текстовий |
22 + 1 байт на сим-вол |
|
Стрічкове значення |
Той же діапазон, що і для стрічок змінної довжини |
В іменах змінних та елементів управління рекомендується вживати префікси, які вказують на належність змінних до того чи іншого типу даних. Ця рекомендація, однак, не є обов’язковою до виконання.
Таблиця 10.2. Рекомендовані префікси в іменах змінних
Тип даних |
Короткий префікс |
Довгий префікс |
Тип даних |
Короткий префікс |
Довгий префікс |
Boolean |
f |
bool |
Long |
l |
lng |
Byte |
b |
byt |
Object |
o |
obj |
Currency |
c |
cur |
Single |
sng |
sng |
Date/Time |
dt |
dat |
String |
s |
str |
Double |
d |
dbl |
Variant |
v |
var |
Integer |
i |
int |
Array |
a |
ary |
Таблиця 10.3. Рекомендовані префікси в іменах елементів управління.
Назва елемента управління |
Назва елемента управління у VBA |
Префікс |
Текстове поле |
Text Box |
Txt |
Напис |
Label |
Lbl |
Командна кнопка |
CommandButton |
Cmd |
Меню |
Menu |
Mnu |
Поле зі списком |
ComboBox |
Cmb |
Рамка, фрейм |
Frame |
Fra |
Перемикач |
OptionButton |
Opt |
Прапорець |
CheckBox |
Chk |
Оператор Private діє аналогічно до оператора Dim. Можна вважати, що оголошення змінної
Dim sName As String
Private sName As String
є рівносильними.
Якщо змінна оголошена за допомогою оператора Public, то це робить її видимою у всьому проекті. Щоб цього досягти, необхідно оголосити цю змінну у розділі Declarations модуля.
Оператор Static використовують для оголошення змінних тоді, коли потрібно зберегти значення змінних після завершення роботи проекту.