- •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
- •2.12. Оператори циклу. Програмування циклічних обчислювальних процесів
- •Dim p As Single, I As Integer, n As Variant
- •2.13. Процедури
- •1) Function Sum(n Аs Integer, a As Single) Аs Integer
- •2)Private Function f1(a As Single, ParamArray X) As Single
- •2) Ім'я Список аргументів
- •3. Список літератури
Dim p As Single, I As Integer, n As Variant
For i = 1 To 10
a(i) = Val(InputBox("Введіть "& str(i) & “ елемент масиву а"))
Next i
p = 1
For Each n In a
If n > 0 Then p = p * n
Next n
MsgBox "p=" & p
End Sub
Приклад 5. Дана матриця D=(dij), i= 1,2, . . . ,m; j=1,2, . . . ,n (m10, n20). Знайти суми додатних елементів кожного стовпця.
Позначення: sum[j] - сума додатних елементів j-го стовпця.
Sub Р5()
Dim d(1 to 10, 1 to 20) As Single, sum(1 to 20) As Single
Dim i As Integer, j As Integer, n As Integer, m As Integer
n = Val(InputBox("Введіть кількість рядків n"))
m = Val(InputBox("Введіть кількість стовпців m"))
For i = 1 To n
For j = 1 To m
d(i, j) = Val(InputBox("Введіть масив d"))
Next j
Next i
For j = 1 To m
sum(j) = 0
For i = 1 To n
If d(i, j) > 0 Then sum(j) = sum(j) + d(i, j)
Next i
Debug.Print sum(j)
Next j
End Sub
Приклад 6. Дана матриця З=(сij), i=1,2, . . .n; j=1,2,. . . m (n50, m50). Визначити для кожного рядка максимальний елемент і його індекси. (Передбачається, що в кожному рядку є єдиний максимальний елемент).
Позначення: max - максимальний елемент у рядку, jmax - номер стовпця максимального елемента.
Sub Р6()
Dim c(1 to 50, 1 to 50) As Double, max As Double
Dim i, j, n, m, jmax As Integer
n = Val(InputBox("Введіть кількість рядків n"))
m = Val(InputBox("Введіть кількість стовпців m"))
For i = 1 To n
For j = 1 To m
c(i, j) = Val(InputBox("Введіть масив c"))
Next j
Next i
For i = 1 To n
jmax = 1: max = c(i, 1)
For j = 1 To m
If c(i, j) > max Then max = c(i, j): jmax = j
Next j
Debug.Print "max= " & max & “ imax=” & i & " jmax=" & jmax
Next i
End Sub
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.
Приклади заголовка процедури-функції: