4.2. Оголошення даних.
Всі дані, які використовуються програмою, повинні бути віднесені до певного типу даних. Ця процедура називається оголошенням даних. Оголошення повинно передувати використанню даних. Якщо дані будуть діяти лише в межах окремої процедури, то їх оголошення здійснюється в цій процедурі. Якщо дані повинні бути доступні всім процедурам форми, то вони повинні оголошуватись в розділі General форми. Якщо ж дані повинні бути доступними в межах всього проекту, то вони повинні бути оголошені в модулі цього проекту.
Оголошення даних має такий вигляд:
Dim змінна As тип даних
де Dim та As – службові слова.
VBA не дозволяє секційне оголошення даних, тобто, для кожного об’єкту потрібно вказати його тип. Якщо програміст з якоїсь причини не сказав тип даних для об’єкту, VBA оголосить такий об’єкт автоматично як типу Variant. Однак таке оголошення має недоліки: по-перше, призводить до неефективного використання пам’яті комп’ютера, а по-друге, може бути наслідком невірної роботи програми.
Приклади оголошення даних:
Dim X as Integer, Y As single, S As String
Dim A,B,C As Integer
В другому прикладі цілочисельною буде оголошена лише третя змінна, перших для будуть оголошені самою мовою VBA як дані типу Variant.
Після завершення роботи програми значення змінних ініціалізуються, тобто при повторному запуску програми їх попередні значення не запам’ятовуються.
VBA дозволяє також спрощене оголошення даних – за допомогою суфіксів. Таке оголошення займає менше місця в лістингові програми, але, з іншого боку, є і менш зрозумілим. Відповідність суфіксів типам даних наведена в табл. 4.2.
Таблиця 4.2. Суфікси оголошення я типів даних.
даних |
Суфікс |
Integer |
% |
Single |
! |
Double |
# |
String |
$ |
Значення змінним надаються за допомогою оператора присвоювання. На відміну від інших мов програмування, VBA не має операторів вводу та виводу даних. Однак введення можна здійснювати шляхом зчитування даних з текстового поля і присвоєння їх змінним. Аналогічно можна виводити результати. Однак слід врахувати, що властивість Text текстового поля, в якій містяться дані, має тип String, а змінні можуть мати інший тип, наприклад, числовий. Тому для відповідності даних змінним потрібно використовувати функції перетворення типів. Основні з них наведені в табл. 4.3. Тип аргументу в них передбачається довільний.
Таблиця 4.3. Функції перетворення типів.
Функція |
Тип результату |
Cint |
Integer |
CSng |
Single |
Cdbl |
Double |
CStr |
String |
Разом з ключовим словом Dim при оголошення змінних може використовуватись ключове слово Static. Відмінність полягає у тому, що змінні, оголошені через Static, зберігаються свої значення. Тобто, наступний запуск програми дозволяє використовувати в ролі початкових значень змінних їх значення від попередніх запусків. Таке оголошення є зручним при підрахуванні сум з накопиченням.
3. Запис виразів.
Як вже зазначалось раніше, значення змінних задаються за допомогою оператору присвоювання. Той в свою чергу задає правила обчислень цих значень. Це здійснюється за допомогою виразу в правій частині оператору. Вираз являє собою сукупність даних, операцій та функцій їх опрацювання. При записі виразів можна використовувати дужки. Правила обчислення виразів стандарті для програмування. Для числових типів даних арифметичні операції наведені в табл. 4.4, а функції – в табл.. 4.5.
Таблиця 4.4. Позначення математичних операцій
Тип |
Дані |
Пам’ять (байт) |
Інтервал значень |
Integer |
Цілі числа |
2 |
-32768..+32767 |
Long |
Цілі числа |
4 |
±2.1*109 |
Single |
Дійсні числа |
4 |
За
модулем |
Double |
Дійсні числа |
4 |
За
модулем |
Boolean |
Логічні значення |
2 |
True або False |
String |
Текстові дані |
1 байт на символ |
Рядки довжиною до 65000 символів |
Date |
Дата або час |
8 |
1.01.100 .. 31.12.9999 |
Variant |
Довільні значення |
16 + 1 байт на символ |
Приклади запису виразів:
Математичний вираз
Запис виразу мовою VBA
(A+B)/(A*B*C)
SQR(X^2+1) – 2*X/EXP(X+1)
SIN(X)^2 – COS(2*X)
Запис виразів можна здійснювати символами будь-якого регістру.
Для рядкових величин визначена операція конкатенації (об’єднання) рядків. Він має позначення &. Однак для об’єднання рядків можна використовувати і знак + . Він є більш звичним та зрозумілим.
Числові та рядкові величини можна також порівнювати. Але результатом в цьому випадку буде логічна величина. Використання логічних величин та операцій порівняння буде розглянуто у подільних матеріалах. Використання змінних розглянемо на прикладі.
Завдання 4.1. Арифмометр.
На форму помістити 4 кнопки та 3 текстових поля. При натисканні однієї з кнопок повинна виконуватись одна з чотирьох основних арифметичних операцій. Дані вводяться в перших двох текстових полях, результат повинен виводитись у третьому полі.
Вид інтерфейсної частини наведений на рис 4.1. Список об’єктів та їх властивостей наведений в табл. 4.6.
Рис 4.1 Вікно форми завдання 4.1.
Таблиця 4.6 Значення властивостей об’єктів для завдання 4.1.
Об’єкт |
Властивість |
Значення |
Кнопка |
Name |
Key1 |
Caption |
+ |
|
Кнопка |
Name |
Key2 |
Caption |
- |
|
Кнопка |
Name |
Key3 |
Caption |
* |
|
Кнопка |
Name |
Key4 |
Caption |
/ |
|
Текстове поле |
Name |
Txt1 |
Text |
||
Текстове поле |
Name |
Txt2 |
Text |
||
Текстове поле |
Name |
Txt3 |
Text |
||
Надпис |
Name |
Lb1 |
Caption |
Перше число |
|
Надпис |
Name |
Lb2 |
Caption |
Друге число |
|
Надпис |
Name |
Lb3 |
Код проекту має вигляд:
Dim X As Single, Y As Single, z As Single
Private Sub Key1_Click()
X = CSng(Txt1.Text)
Y = CSng(Txt2.Text)
z = X + Y
Txt3.Text = CStr(z)
End Sub
Private Sub Key2_Click()
X = CSng(Txt1.Text)
Y = CSng(Txt2.Text)
z = X - Y
Txt3.Text = CStr(z)
End Sub
Private Sub Key3_Click()
X = CSng(Txt1.Text)
Y = CSng(Txt2.Text)
z = X * Y
Txt3.Text = CStr(z)
End Sub
Private Sub Key4_Click()
X = CSng(Txt1.Text)
Y = CSng(Txt2.Text)
z = X / Y
Txt3.Text = CStr(z)
End Sub
25 26 27 28 Наверх ↑