- •Поняття про об’єктно-орієнтоване програмування
- •Контрольні запитання
- •Основні поняття мови vba. Алфавіт та елементи мови. Типи даних
- •Версії мови Basic. Основні поняття мови vba
- •Алфавіт та елементи мови
- •Службові слова та оператори
- •Типи даних, змінні та константи
- •Операції
- •Контрольні запитання
- •Оператори та структури мови (функції та процедури)
- •Опис та присвоєння значень змінним та константам
- •Визначення області видимості змінних та констант
- •Організація умовного та безумовного переходу
- •If умова Then оператор1 (Else оператор 2)
- •Стандартні функції vb
- •InputBox (повідомлення (,заголовок)(,текст)),
- •Організація циклів
- •Опис та присвоєння значень масивам
- •Функції та процедури, створені користувачем
- •Контрольні запитання
- •Об’єкти ms Office. Використання властивостей методів об’єктів
- •Використання об’єктів
- •Використання властивостей об’єктів
- •Використання методів об’єкта
- •Об’єкт UserForm (Форма користувача)
- •Опис об’єктних змінних
- •Посилання на об’єкти за допомогою структури With...End With
- •Контрольні запитання
- •Середовище редактора vba
- •Інтелектуальні можливості редактора коду
- •Налаштування середовища vba
- •Явний опис змінних
- •Пошук процедури у вікні редактора
- •Редагування створеної процедури
- •Друк коду процедури
- •Експорт та імпорт модуля
- •Запуск та відлагодження процедури
- •Контрольні запитання
- •Програмування в ms Access
- •Макроси та модулі в Access. Створення, редагування та запуск макросів
- •Зв’язування макросів з подіями
- •Перетворення макросів в процедуру
- •Контрольні запитання
- •Розробка інтерфейсу користувача
- •Проектування та форматування форми
- •Елементи керування
- •Контрольні запитання
- •Тема 11. Програма Супермаркет
- •11.1. Створення відомостей. Утиліти програми Супермаркет
- •Створення відомостей про товарообіг
- •Створення документів, пов’язаних з фінансовими операціями
- •Створення і друкування цінників
- •Використання довідників
- •11.2. Робота з оболонкою Пос Термінал
- •Створення товарних чеків
- •Інкасація
- •Довідник товарів. Довідник організацій. Картка організації
- •Створення звітів та протоколів
Організація циклів
У мові Visual Basic цикл можна організувати за допомогою двох типів конструкцій.
Конструкція For...Next використовується тоді, коли кількість повторень циклу відома наперед. Вона має вигляд:
For лічильник = поч.знач To кін.знач (Step крок)
оператори1
(Exit For)
оператори2
Next (лічильник)
— спочатку змінній-лічильнику присвоюється значення поч. знач, після чого можливі два варіанти продовження обчислень:
1 — якщо значення змінної лічильник більше за значення кін.знач, то завершується виконання циклу, при цьому оператори1 та оператори2 не виконуються жодного разу;
2 — якщо значення лічильника менше значення кін.знач, то блок операторів оператори1 виконуються перший раз, після чого відбувається перехід на початок циклу, значення лічильника змінюється на крок (якщо немає ключового слова Step, то вважають, що крок дорівнює 1. Після цього знову перевіряється, чи лічильник не більший за значення кін.знач.
Якщо потрібно примусово завершити роботу циклу при виконанні якоїсь умови, то всередині циклу використовують службові слова Exit For (це аналогічне присвоєнню змінній лічильник значення, більшого за кін.знач).
Конструкція Do...Loop використовується тоді, коли наперед невідомо, скільки разів повинні виконатися оператори тіла циклу. Існує 4 різновиди цієї конструкції.
Do Until...Loop:
Do Until умова
оператор
Loop
— якщо умова набуває хибне значення, то блок оператори виконається, якщо умова істинна — то тіло циклу не виконається, а відбудеться перехід на оператор, який знаходиться після службового слова Loop. Отже тіло циклу може жодного разу не виконатися, якщо умова істинна.
Do While...Loop:
Do While умова
оператори
Loop
— якщо умова набуває істинне значення, то блок оператори виконається, якщо умова хибна — то відбувається перехід на оператор, який знаходиться після службового слова Loop. Якщо ж умова хибна, то цикл не виконається жодного разу.
Do While...Loop Until:
Do
оператори
Loop Until умова
— тіло циклу виконається хоча б 1раз; блок оператори виконуватиметься доти, поки умова буде набувати хибне значення.
Do While...Loop While:
Do
оператори
Loop While умова
— тіло циклу обов’язково виконається хоча б 1 раз; блок оператори виконуватиметься доти, поки умова буде набувати істинне значення.
Опис та присвоєння значень масивам
При описі статистичного масиву вказується верхня та нижня межі (за замовчуванням дорівнює 0), які не можна змінити в програмі. Масиви описують за допомогою оператора Dim. В описі можна вказати лише верхню межу або обидві, наприклад:
Dim A(9) As Single — масив з 10 елементів;
Dim B(1 To 10) — масив з 10 елементів;
Dim C(4,4) As Double — масив з 25 елементів;
Dim D(1 To 10, 1 To 5) As String — масив з 50 елементів.
Залежно від області видимості, в описі масивів використовують службові слова Static, Public, Private.
Опис динамічного масиву відбувається у два етапи:
описують масив за допомогою одного із службових слів (Dim, Static, Public, Private) без зазначення розмірності.
в потрібному місці процедури описують даний масив із потрібним значенням розмірності за допомогою оператора ReDim.
Dim Arr()As Single ’описано тип масиву
ReDim Arr(1 To 10) ’вказано розмірність
У VBA існує можливість визначення значення верхньої та нижньої меж масиву. Для цього використовуються функції Lbound(масив) та Ubound(масив) відповідно, де масив — ім’я масиву.
Важливою перевагою при використанні динамічних масивів є те, що зайняту пам’ять можна очистити після завершення обробки масиву. Для цього використовують функцію Erase(масив), де масив — ім’я масиву.
Після опису масив можна використовувати в коді. Для доступу до елементів масиву необхідно вказати назву масиву та значення індексу, яке записується в дужках. Наприклад, А(9) — звернення до елемента одновимірного масиву, індекс якого 9; ArrD(5,4) — звернення до елемента двовимірного масиву, індекси якого 5 і 4.
Для присвоєння значень елементам масиву використовують цикл, параметром якого є індекс (у випадку одновимірного масиву) або сукупність вкладених циклів за індексами масиву (для багатовимірного масиву). У тілі циклу розміщують оператор присвоєння для елемента масиву з індексом, який зберігається з параметром циклу.
Приклад (цикл з визначеною кількістю повторень): скласти процедуру знаходження добутку елементів одновимірного масиву А(6), тобто обчислити .
Текст процедури:
Sub Dobutok()
Dim Dob, a(1 to 6) As String
For I = 1 To 6
a(i) = InputBox (“Введіть” & i &“те число:”)
Next i
Dob = 1
For I = 1 To 6
Dob = Dob * a(i)
Next i
MsgBox (“Добуток чисел =” & Dob)
End Sub