[ Створення програмного продукту на мові програмування Visual Basic for Applications ] | Запис | Типи даних | Дія | |
Додавання | + | a + b | Byte, Short, Integer, Long, Single, Double, Decimal | Складає два числа |
Віднімання | - | a - b | Byte, Short, Integer, Long, Single, Double, Decimal | Віднімає з одного числа інше |
Розподіл | / | a / b | Byte, Short, Integer, Long, Single, Double, Decimal | Ділить два числа і повертає результат з плаваючою точкою |
Розподіл без остачі | \ | a \ b | Byte, Short, Integer, Long, Single, Double, Decimal | Ділить два числа і повертає цілий результат (залишок відкидається) |
Залишок | Mod | a Mod b | Byte, Short, Integer, Long, Single, Double, Decimal | Обчислюється залишок від ділення одного числа на інше |
Множення | * | а * b | Byte, Short, Integer, Long, Single, Double, Decimal | Примножує два числа |
Зведення до степеня | ^ | a ^ b | Byte, Short, Integer, Long, Single, Double, Decimal | Підносить число до степеня |
Математичні оператори призначені для створення виразів. Вирази можуть містити змінні, константи, функції, пов'язані більш ніж одним оператором. Якщо у виразі відсутні дужки, то оператори виконуються в наступному порядку:
зведення до степеня;
множення і ділення;
поділ без остачі;
взяття залишку від ділення;
додавання і віднімання.
Можна змінити порядок обчислення в вираженні, використовуючи круглі дужки.
У VBA, як і у всіх мовах програмування, існують керуючі конструкції, призначені для керування порядком виконання команд. Розрізняють два основних типи керуючих операторів:
- I f
- Select .. Case
Конструкція I f використовується в тому випадку, коли необхідно, щоб група операторів виконувалася при дотриманні певних умов. Конструкція Select .. Case дозволяє на підставі аналізу значення заданого виразу виконувати ті чи інші дії.
У свою чергу, керуючі оператори if бувають двох видів:
- If ... Then
- If ... Then ... Else
Конструкція If ... Then застосовується, коли необхідно виконати певні дії в залежності від деякої умови. Керуюча конструкція If ... Then ... Else використовується в тому випадку, коли необхідно виконати різні дії в залежності від умови. Конструкція I f.. . Then .. . Else аналогічна конструкції I f. .. Then, але дозволяє задати дії, виконувані як при виконанні умов, так і в разі їх невиконання.
Підставою для прийняття рішень в керуючих конструкціях є умовні вирази, тому попередньо необхідно сказати кілька слів про ці висловлюваннях і роботі з ними.
Умовні вирази - це такі вирази, які повертають одне з двох значень: Істина або Брехня. В умовних виразах використовують оператори порівняння, наведені в таблиці 2.3.
Таблиця 2.3 - Оператори порівняння для умовних виразів
Операція | Знак |
Менше | < |
Менше або дорівнює | <= |
Більше | > |
Операція | Знак |
Більше або дорівнює | > = |
Так само | = |
Не дорівнює | <> |
Над умовними виразами можна виконувати дії логічного математики (логічні операції). До логічним побітовим операцій відносяться операції And, Or, And Also, Or Else, Xor, Not. Операція Not має один операнд, решта - по два операнда.
Ключові слова IF і End I f мають той же зміст, що і в конструкції If ... Then. Якщо задане в конструкції умова не виконується (результат перевірки дорівнює False), і конструкція містить ключове слово Else, Visual Basic виконає послідовність конструкцій, розташованих слідом за Else. Після чого управління перейде до конструкції, наступного після End If.
Стандартні функції роботи з файлами, рядками, діалоговими вікнами
У VBA є ряд функцій і операторів по роботі з файлами та каталогами. Одним з зручностей є те, що не потрібно встановлювати посилання на бібліотеку загального використання. У таблиці 2.4 ці функції і представлені.
Таблиця 2.4 - Функції та оператори для роботи з файлами
Функція, оператор | Призначення |
Open | Відкриває файл |
Close | Закриває всі файли |
Close # | Закриває файл за ідентифікатором |
Reset | Закриває всі відкриті файли, записує вміст буферів. |
Print tt | Записує дані в файл |
FileCopy | Копіює файл |
EOF | Визначає мітку кінця файлу |
FileAttr | Повертає режим доступу відкритого файлу |
FileDateTime | Повертає дату і час створення файлу |
FileLen | Повертає розмір файлу в байтах |
FreeFile | Повертає номер вільного ідентифікатора |
GetAttr | Отримує атрибути файлу |
SetAttr | Встановлює атрибути файлу |
Loc | Повертає номер поточної позиції у файлі |
LOF | Повертає розмір відкритого файлу в байтах |
Seek | Встановлює на задану номером позицію або запис у файлі |
Dir | Повертає вміст поточної папки |
Kill | Видаляє файл |
Lock | Блокує файл при роботі в багатокористувацької середовищі |
Unlock | Знімає блокування файлу в багатокористувацької середовищі |
Name | Задає ім'я файлу |
Get # | Читає дані з файлу |
Input | Читає дані з файлу |
Input # | Читає дані з файлу |
Line Input # | Читає рядок з файлу |
Put # | Записує дані в файл |
Write # | Записує дані в файл |
У таблиці 2.5 представлені функції обробки строкових виразів, які дозволяють зробити широкий спектр операцій: від пошуку довжини рядка, до заміни в рядку підрядків.
Таблиця 2.5 - Функції для роботи з рядками
Функція | Призначення |
Asc | Повертає ASCII - код символу |
Chr | Перетворює ASCII-код в символ |
InStr, InStrRev | Здійснює пошук рядка в інший |
Lcase | Змінює регістр букв вихідної рядка на нижній |
Left | Повертає вказану кількість символів з початку рядка |
Len | Повертає кількість символів в рядку |
Ltrim, RTrim, Trim | Видаляють пробіли, розташовані відповідно на початку, в кінці і з обох сторін символьного рядка |
Функція | Призначення |
Mid | Повертає задану кількість символів з довільного місця рядки |
Right | Повертає вказану кількість символів з кінця рядка |
Str, CStr | Перетворюють числове вираз в рядок |
StrReverse | Змінює порядок проходження символів в рядку на зворотний |
StrConv | Змінює регістр букв символьного рядка |
Продовження таблиці 2.5 | |
Val | Перетворюють рядок у числовий вираз |
UCase | Змінює регістр букв вихідної рядка на нижній |
У проектах VBA часто зустрічаються два різновиди діалогових вікон: вікна повідомлень і вікно вводу. Вони вбудовані в VBA, і якщо їх можливості досить, то можна обійтися без проектування діалогових вікон. Вікно повідомлень виводить найпростіші повідомлення для користувача, а вікно введення забезпечує введення інформації.
Функція InputBox виводить на екран діалогове вікно, що містить повідомлення, поле введення, і дві кнопки OK і Cancel. Вона встановлює режим очікування введення тексту користувачем і натискання кнопки, а потім, при натисненні на кнопку OK, повертає значення типу String, що містить текст, введений у полі введення. При натисканні кнопки Cancel повертається порожній рядок.
Процедура MsgBox виводить на екран діалогове вікно, що містить повідомлення, встановлює режим очікування натискання кнопки користувачем, а потім повертає значення типу Integer, яке вказує, яка кнопка була натиснута.
3 АЛГОРИТМ вирішення поставлених завдань у MS WORD
S1
Для i = 1 до len (s1) -1
Якщо mid (s1, i, 1) = ""
Якщо mid (s2, 1,1) = mid (s2, len (s2), 1)
S3 = s3 + s2 + ""
s2 = ""
Інакше
s2 = s2 + Mid (s1, i, 1)
s 3
4 АЛГОРИТМ вирішення поставлених завдань у MS EXCEL
Для i = 1 до 5
Для j = 1 до 5
a (i, j)
sum = 0
Для i = 1 до 5
b [i] = a [i, i]
sum = sum + b [i]
Для i = 1 до 5
Для i = 1 до 5
Для j = 1 до 5
a (i, j)
5 ТЕСТОВІ ПРИКЛАДИ
MS WORD
№ 1
Дід Мороз - червоний ніс, ти подарунки нам приніс?
Дід
№ 2
Трактат про нещасну любов.
Трактат
MS EXCEL
№ 1
1 | 2 | 3 | 4 | 5 | ||||||||||||||||||||||||||||||||||||
6 | 7 | 8 | 9 | 10 | ||||||||||||||||||||||||||||||||||||
7 | 9 | 11 | 13 | 15
Результат
Додаток А ЕКРАННІ ФОРМИ Рисунок А.1 - Робота програми в MS Word Рисунок А.2 - Приклад роботи програми в MS Word Додаток Б Лістинг програм У MS EXCEL Sub Laba1 () Dim m, i, j, k As Integer Dim sum As Double Dim a (5, 5), b (10) As Long For i = 1 To 5 For j = 1 To 5 a (i, j) = Cells (i, j) Next j Next i sum = 0 For i = 1 To 5 k = i j = i b (k) = a (i, j) sum = sum + b (k) Next i For i = 2 To 5 Step 2 For j = 1 To 5 a (i, j) = a (i, j) / sum Next j Next i Cells (7, 1) = "Кінцева" Cells (7, 2) = "матриця:" For i = 1 To 5 For j = 1 To 5 Cells (i + 8, j) = a (i, j) Next j Next i End Sub Додаток В Лістинг програм У MS WORD Sub Laba2 () Dim s1, s2, s3 As String Dim i, j As Integer Selection.WholeStory s1 = Selection.Text For i = 1 To Len (s1) - 1 If Mid (s1, i, 1) = "" Then If Mid (s2, 1, 1) = Mid (s2, Len (s2), 1) Then s3 = s3 + s2 + "" End If s2 = "" Else s2 = s2 + Mid (s1, i, 1) End If Next i Selection.Text = s1 + s3 End Sub |