деяких випадках ім’я, написане кирилицею, стає невидимим. Засоби для оголошень:
Оголошення констант, які не змінюються в процесі роботи програми
Const ім’я_константи = значення
Приклад: Const P = 3.1415926
Оголошення даних
Dim ім’я_змінної As тип
Основними типами змінних є:
Integer – ціле число (наприклад, 238);
Long – велике ціле число;
Single – дійсне число (наприклад 45.50);
Date – дата (наприклад, 04.08.02);
Boolean – логічний (True або False);
String – літерал, рядок літер;
Variant – будь-який тип (програма сама визначає тип залежно від даних);
Object – об’єкт VBА.
Приклади оголошень:
Dim a As Integer, slovo As String – оголошення двох змінних: а – цілого типу і slovo – рядка літер довжиною 128 символів (за замовчуванням);
Dim s – оголошення змінної s без вказання типу (за замовчуванням – Variant);
Dim s As String *20 – оголошення змінної s літерного типу, довжина якої дорівнює 20 символів;
Dim a(5,3) As Integer – оголошення матриці a порядку 6Ч4 цілих чисел;
Dim a(0 To 5, 0 To 3) As Integer – те ж.
Присвоєння значень та ввід-вивід змінних. Приклад присвоєння двом змінним значень
a=632: slovo=”Петренко П.П.”
Ввести значення змінної текстового типу можна за допомогою функції InputBox, яка має вигляд:
Ім’я_змінної = InputBox(“Підказка”, “Заголовок вікна”, “Значення за замовчуванням”)
Для виводу значень змінних на екран служить функція MsgBox, вона має вигляд:
Результат = MsgBox(“Текст виводу”, Константа, “Заголовок вікна”)
Тут Константа використовуються для визначення вигляду вікна. Приклади констант:
vbOKCancel – наявність кнопок OK та Cancel;
vbYesNo – наявність кнопок Yes та No;
vbCritical – знак попередження;
vbExclamation – знак оклику;
vbInformation – знак запитання та ін.
Функція повертає Результат, який залежно від вибраної кнопки у вікні MsgBox може приймати значення vbOK, vbYes і т. д. Якщо результат не використовується в програмі, його одержання може бути опущеним.
Програмування розгалуження. Для програмування розгалужень використовуються команди:
If умовний_вираз Then інструкція
або
If умовний_вираз Then інструкція1 Else інструкція2 EndIf
Приклад: введення числа та його аналіз
Dim oplata As Single, slovo As String
oplata = MsgBox(“Введіть число”, “Вивід результата аналізу”, “100”)
If oplata < 300 then slovo = ”мало” Else slovo = ”небагато”
MsgBox “Введено число: ” & oplata & “ Висновок: ” + slovo
Команда безумовного переходу має вигляд:
Go To мітка
Тут мітка – ідентифікатор. Вона ставиться перед командою, на яку здійснюється перехід, і відокремлюється від нього двокрапкою.
Команда циклу з регулярною зміною параметра має вигляд:
For ім’я_змінної=початкове_значення To кінцеве_значення Step крок
тіло циклу
Exit For – передчасний вихід з циклу
Next ім’я_змінної
Приклад: видати числа від 1 до 10
Dim i As Integer
For i=1 To 10
MsgBox “№ виконання циклу: ” & i
Next i
Команда циклу ітераційного (перерахункового) типу має вигляд:
While умовний вираз
тіло циклу
Wend
Приклад: видати числа від 1 до 10
Dim i As Integer
i=0
While i < 11
i=i+1
MsgBox “№ виконання циклу: ” & i
Wend
Процедури. Мова VBA має два типи процедур – підпрограму і функцію
Опис підпрограми має вигляд:
Кваліфікатор Sub ім’я процедури(список параметрів, їхніх кваліфікаторів і типів)
тіло процедури
Exit Sub – передчасний вихід з підпрограми
End Sub
Звернення до підпрограми виконується за допомогою команди:
Call ім’я процедури(список параметрів)
Опис функції має вигляд:
Кваліфікатор Function ім’я функції(список параметрів, їхніх кваліфікаторів і типів) As тип поверненого значення
тіло процедури
Exit Function – передчасний вихід з функції
End Sub
При звертанні до функції називають її ім’я, після якого в дужках подають список параметрів.
Приклад. Скласти програму для одержання за допомогою підпрограми zal найменшого цілого залишка z від ділення числа x на 3 і його подвоєнного значення за допомогою функції dwa.
Option Compare Database
Option Explicit
Sub pryklad() ‘Головна програма
Dim z As Integer, x As Integer , s As String
s = InputBox("Введіть х", "Ввід числа", "10")
x = Val(s)
Call zal(x, z)
MsgBox "Задане число= " & x & " Залишок=" & z & " Подвоєне число=" & dwa(x)
End Sub
Sub zal(x1 As Integer, z1 As Integer) ‘Процедура-підпрограма
z1 = x1 Mod 3
End Sub
Function dwa(p As Integer) As Integer ‘Процедура-функція
dwa = 2 * p
End Function
У прикладі використана проміжна змінна s типу String для вводу даних з вікна MsgBox. Її значення перетворюється в тип Integer за допомогою функції Val.
Якщо програма містить коментарі, то вони починаються знаком апостроф. У вищенаведеному прикладі застосовуються коментарі для опису типу програм.
Під час виготовлення, налагодження та випробування процедур може виявитися корисним кваліфікатор Optional, який дозволяє присвоювати значення вхідному параметру за замовчуванням. Аргументи, які мають кваліфікатор Optional, повинні знаходитися вкінці списку параметрів процедури.
Процедура може мати кваліфікатор Private – локальна для обмеження області доступу.
Кваліфікатор ByVal дозволяє передати значення параметра за значенням, будучи зміненим у процедурі, воно не зміниться в головній програмі. Кваліфікатор ByRef передасть параметр за посиланням. Його застосування ідентичне передачі адреси змінної, така змінна набуває властивості глобальної.
Нижче поданий приклад оголошення локальної процедури pryklad, параметр якої slovo переданий за значенням, а – expo має кваліфікатор Optional.
Private Sub pryklad(ByVal slovo As Single, Optional expo as Double = 2.71828182836405)
7.2 Об’єкти VBA
В командах, які використовують об’єкти, можуть міститися імена інших (вкладених) об’єктів або методів та властивостей. Така команда буде складатися з декількох слів, розділених крапкою.
Об’єкт Application є найстаршим у контейнері, всі решта об’єкти є вкладеними в нього. Разом з модулями він утворює проект бази даних. Це – сам host-додаток до Windows, тобто MS Access. Його властивості Name та Version можна переглянути за допомогою команди:
MsgBox "Ім’я " & Application.Name & " Версія " & Application.Version
Властивості будь-якого об’єкта можна