
- •Операційна система windows, текстовий редактор word, табличний процесор excel
- •1.1. Знайомство із клавіатурою. Робота в Windows з папками й файлами
- •1.2. Робота з файлами, папками, ярликами в Провіднику
- •1.3. Текстовий процесор Word - створення документа, його редагування й форматування
- •1.4. Текстовий процесор Word - робота з таблицями
- •1.5. Текстовий процесор Word - робота з формульним редактором, набір і редагування математичних формул
- •1.6. Текстовий процесор Word - робота із графічними об'єктами - створення малюнків
- •1.7. Табличний процесор Excel - створення й занесення даних у
- •1.8. Табличний процесор Excel – робота з майстром формул
- •1.9. Табличний процесор Excel – робота з діаграмами й графіками
- •1.10. Табличний процесор Excel – рішення пошукових завдань лінійного програмування
- •2. Програмування мовою vba
- •2.1. Вступ
- •2.2. Робота у вікні модуля. Структура програми
- •2.3. Основні типи даних
- •2.4. Змінні, масиви, константи і їхній опис
- •2.5. Операції vba
- •2.5.1. Арифметичні операції
- •2.5.2. Операції порівняння
- •2.5.3. Логічні операції
- •2.6. Стандартні функції
- •2.7. Вираження
- •2.8. Оператор присвоювання
- •2.9. Введення даних користувачем
- •2.10. Виведення даних
- •2.11. Оператори переходу. Програмування розгалужуваних обчислювальних процесів
- •If умова Then оператор
- •If умова Then
- •Оператор If...Then...Else.
- •If умова Then
- •2.12. Оператори циклу. Програмування циклічних обчислювальних процесів
- •Оператор Do ...Loop
- •Оператор While...Wend
- •Оператор For... Next
- •Оператор For Each...Next
- •2.13. Процедури
- •2) Ім'я Список аргументів
- •3. Система управління базами даних access
- •3.1. Вступ
- •3.2. Що таке бази даних?
- •3.3. Архітектура Microsoft Access
- •3.4. Створення бази даних. Створення таблиць. Зв'язування таблиць
- •Визначення типів даних
- •3.5. Зміна проекту бази даних
- •3.6. Створення запитів
- •3.7. Створення й редагування форм
- •3.8. Створення й редагування звітів
- •3.9. Створення й застосування макросів
- •3.10. Модулі Access
- •3.11. Класи й сімейства
- •3.12. Об'єктні моделі Microsoft Office
- •3.13. Моделі об'єктів Microsoft Access
- •3.14. Моделі об'єктів доступу до даних dao і ado
- •3.15. Посилання на об'єкти
- •3.16. Властивості й методи об'єктів
- •3.17. Застосування методу DoCmd у програмах vba
- •3.18. Робота з об'єктами доступу до даних
- •4. Список літератури
- •Додаток
- •5. Таблиці бази даних „учебный процесс”
2.13. Процедури
Програма може являти собою сукупність окремих блоків-підпрограм (процедур). Використання процедур дозволяє реалізувати один із самих прогресивних методів програмування - структурне програмування.
Процедури доцільно застосовувати у випадках, коли однакову послідовність дій необхідно виконувати в різних частинах програми й при різних вхідних даних. Таку послідовність дій можна виділити в самостійну програмну одиницю - процедуру, що може бути використана багаторазово в міру необхідності.
В VBA є 3 види процедур: процедура Function, процедура Sub і процедура Property. У даній роботі розглядаються тільки процедури Function і Sub.
Процедура Function
VBA містить безліч вбудованих функцій, наприклад, cos, sqr, mid, але користувач може створювати власні функції, використовуючи для цього процедуру Function.
Синтаксис поцедури Function:
[Private Public Static] Function Ім'я(Список аргументів) [As тип]
Блок операторів
End Function
Тут і далі ( означає, що використовується один з варіантів: Private, Public або Static.
Private - означає, що процедура Function доступна для інших процедур тільки того модуля, у якому вона описана.
Public - означає, що процедура Function доступна для інших процедур у всіх модулях.
Static – означає, що локальні змінні процедури Function зберігаються в проміжках часу між викликами цієї процедури.
Ім'я – ідентифікатор функції, що задовольняє стандартним правилам побудови імен;
Тип – тип значення, що повертається Function;
Список аргументів - список змінних, що представляють аргументи, які передаються в процедуру Function при її виклику. Аргументи в списку відділяються комами.
Структура аргументу:
[Optional] [ByVal ByRef] [ ParamАrray] Ім'я [As тип]
Optional - указує, що даний аргумент є необов'язковим. Аргументи, позначені кваліфікатором Optional повинні перебувати наприкінці списку аргументів.
ByVal - означає, що аргумент передається за значенням. При цьому виключається можливість зміни значення аргументу процедури після її завершення.
ByRef – аргумент передається по посиланню. Передача аргументу по посиланню дає процедурі доступ до вмісту змінної за її адресою в пам'яті. Значення змінної може бути змінене процедурою, що викликається.
За замовчуванням установлюється ByRef.
ParamАrray - позначає необов'язковий аргумент, що є масивом довільного числа змінних типу Variant. Цей аргумент може бути тільки останнім у списку аргументів. З ним не можуть використовуватися ключові слова ByVal, ByRef, Optional.
Тип - тип аргументу, може використовуватися будь-який стандартний тип даних. За замовчуванням використовується Variant.
Приклади заголовка процедури-функції:
1) Function Sum(n Аs Integer, a As Single) Аs Integer
Ця функція – Public (за замовчуванням), доступна для всіх модулів. Ім'я функції – Sum, аргументи: n – цілого типу, а – числового, обидва аргументи мають кваліфікатор ByRef (за замовчуванням). Функція повертає значення типу Integer.
2)Private Function F1(a As Single, ParamArray x) As Single
Функція доступна тільки для модуля, у якому вона записана. Аргументи: а - числова змінна типу Single, х - масив довільного числа елементів типу Variant.Функція повертає значення типу Single.
Процедура Function може перебувати в будь-якому місці модуля, за винятком тіла іншої процедури. Викликається процедура по імені із вказівкою фактичних аргументів, у ролі яких можуть виступати константи, змінні, вирази. Виклик може перебувати усередині будь-якого виразу.
Виконання Function починається з першого рядка тіла процедури й триває доти, поки не буде досягнута інструкція End Function або Exit Function (вихід з Function). Далі управління передається в основну процедуру.
Процедура Function повертає в основну процедуру значення, присвоює ім'я Function оператором: ім'я = вираз. Цей оператор може бути записаний у тілі Function кілька разів, при цьому Function повертає останнє присвоєне значення. Якщо тип функції не заданий явно, то функція повертає значення типу Variant.
Формально Function повертає тільки одне значення, однак після виконання Function можна використовувати й модифікації аргументів, переданих в Function по посиланню (ByRef).
Приклад
1. Обчислити
, визначення максимуму виконати в
процедурі Function
Private Sub pp1()
Dim y As Single, a As Single, x As Single
a = Val(InputBox("Введіть а"))
x = Val(InputBox("Введіть x"))
y = (max(3.5, x + a) + max(x, a)) / max(x ^ 2, 120)
MsgBox "y=" & y
End Sub
Private Function max(b As Single, c As Single) As Single
If b > c Then max = b Else max = c
End Function
Приклад
2.
Обчислити C =
, де
n>m.
Визначення факторіала виконати в
процедурі Function.
Private Sub pp2()
Dim n As Integer, m As Integer, c As Single
n = Val(InputBox("Введіть n"))
m = Val(InputBox("Введіть m"))
c = fact(n) / (fact(m) * fact(n - m))
MsgBox "c=" & c
End Sub
Private Function fact(n As Integer) As Single
Dim i As Integer, p As Single
p = 1
For i = 1 To n
p =p * i
Next I
fact=p
End Function
Процедура Sub.
Синтаксис процедури Sub:
[Private Public Static] Sub Ім'я([Список аргументів])
Блок операторів
End Sub
Загаловок Sub аналогічний заголовку Function, тільки в процедурі Sub не вказується тип процедури.
Процедура Sub не повертає значення, присвоює її імені, як це робить процедура Function, однак як і Function, Sub може змінювати значення аргументів, переданих до неї. Тому, якщо процедура Sub призначена для розрахунку якихось величин, то в списку аргументів процедури Sub повинні бути присутнім як вхідні аргументи, так і вихідні.
Процедура Sub, на відміну від Function, не може бути викликана по імені функції усередині виразу. Для її виклику використовується окремий оператор. Застосовуються 2 модифікації виклику:
1) Call Ім'я (Список аргументів)