
- •Доступ до об'єктів Excel з vb
- •1.1.Методи об'єктів
- •1.2. Контейнери і набори об'єктів
- •2. Використання властивостей, що характеризують активність
- •3.Використання властивостей, що характеризують вміст
- •4. Властивості форматування
- •5. Методи роботи з таблицями
- •Контрольні завдання по темі
- •1. Теоретичні питання
- •2. Тести
- •3. Практичні завдання
- •Вживання процедур і функцій
- •6.Передача величин процедурі
- •7. Створення і вживання функцій
- •Контрольні завдання по темі
- •1. Теоретичні питання
- •2. Тести
- •При застосуванні службового слова РаrаmArrау у списку аргументів функції/процедури перед ім'ям деякого аргументу, яка дія повинна застосовуватися для цього аргументу?
- •3. Практичні завдання
- •Оператори управління
- •1. Оператор if
- •If логічний_вираз then оператор,
- •1.1. Логічні вирази
- •1.2. Структура оператора if - then
- •2.Структура оператора Select Case
- •3. Неструктурований перехід
- •Контрольні завдання по темі
- •1. Теоретичні питання
- •2. Тести
- •3. Практичні завдання
- •Цикли і структури, що повторюються
- •1. Вживання обчислюваних циклів
- •1.1. Циклічна структура for – next
- •1.2. Цикл for each – next
- •2. Логічні цикли
- •2.1. Вживання циклу do - loop
- •2.2. Вживання циклів while - wend
- •Контрольні завдання по темі
- •1. Теоретичні питання
- •2. Тести
- •3. Практичні завдання
- •Вбудовані діалогові вікна
- •1. Вживання функції MsgBox()
- •1.1. Створення простого вікна повідомлення
- •1.2. Додавання командних кнопок у вікно повідомлення для створення діалогового вікна
- •1.3. Набуття значень від функції MsgBox()
- •2. Вживання функції InputBox()
- •3. Вживання діалогових вікон інших типів
- •4. Виклик діалогових вікон додатку
- •Контрольні завдання по темі
- •1. Теоретичні питання
- •2. Тести
- •3. Практичні завдання
- •Література
3. Практичні завдання
Запустіть макрорекордер і застосуйте усі команди форматування. Перегляньте утворений макрос, додайте коментар для кожного рядка. Якщо якась команда або оператор не зрозумілі, застосуйте інтерактивну підказку.
Створіть процедуру, яка утворить набір із певної книги і видаліть з цієї книги аркуш Лист2.
Створіть процедуру, яка утворить в поточній книзі аркуш з ім’ям «Титул» та в клітині С10 вкажіть своє прізвище, ім’я та по батькові, в D12 – свою групу, D13 – поточну дату.
Вживання процедур і функцій
6.Передача величин процедурі
Аргументи в заголовку процедури дають можливість визначити імена і типи величин, які будуть передані цій процедурі, за винятком глобальних змінних і змінних, визначених на рівні модуля. Всі змінні в процедурі є приватними для даної процедури, окрім вказаних як аргументи в заголовку процедури і передані цій процедурі або з неї.
Окрім оголошення змінних, які можуть передаватися в процедуру або повертатися, потрібно оголошувати типи цих змінних.
Приклад:
Процедура, яка отримує два перші аргументи із зовні перемножує їх і повертає результат у вигляді третього аргументу.
Sub Product1(Value1 As Single, Value2 As Single, Resume As Single)
Resume = Value1*Value2
End Sub
Якщо тип не визначений, то за умовчанням вважається Variant. Існує декілька варіантів передачі значення процедурі з іншої, розглянемо їх:
Для того, щоб викликати цю процедуру з іншої можна передати аргументам для іншої числові значення (константи) і повернути результат в змінній:
Sub Program2() ‘ процедура визначає результуючу змінну типа Single на ім'я Result
DIM Result As Single
Product1 5, 7, Result ‘ викликає процедуру Product1 та передає значення 5
‘ для змінної Value1, 7 - Value2 і отримує результат в змінній Result,
‘ тобто Result= Resume
Debug.Print Result ‘ Метод Print об'єкту Debug друкує результат
‘ у вікні відладки
End Sub
Можна передавати значення змінних, які визначаються для змінних що передаються і результат повертається в змінній:
Sub Program3()
Dim Result As Single, VALA As Single, VALB As Single
VALA = 5
VALB = 7
Product1 VALA, VALB, Result ‘ викликає процедуру Product1 та
‘ передає значення VALA для змінної Value1, VALB - Value2
‘ і отримує результат в змінній Result, тобто Result= Resume
Debug.Print Result
End Sub
Для передачі аргументів можна застосовувати поіменовані списки. У поіменованому списку використовується ім'я змінної із заголовка процедури, привласнене значення або визначена змінна, які потрібно передати:
Sub Program4 ()
Dim Result As Single, VALA As Single, VALB As Single
VALA = 5
VALB = 7
Product1 Product:= Result, Value1:= VALA, Value2:= VALB
‘ отримання результату в змінній Product, тобто Product = Result
‘ передача для змінної Value1 значення VALA , для змінної Value2 значення VALB
Debug.Print Result
End Sub
Багато процедур і функції можуть використовувати невизначену кількість аргументів. Для цього перед останнім аргументом в заголовку процедури, потрібно вказати ключове слово ParamArray (аргумент тим самим перетвориться в масив змінних типа Variant). У самій процедурі/функції необхідно визначити, скільки елементів може містити цей масив, аби потім оперувати цими елементами. В цьому випадку надалі використовують функцію Ubound(), для визначення номера останнього елементу масиву або цикл For Each для операцій зі всіма елементами масиву.
Приклад:
Sub Program5()
Dim Result As Single, Val1 As Single, Val2 As Single, Val3 As Single, Val4 As Single
Val1 = 5
Val2 = 7
Val3 = 10,5
Val4 = -3,2
Product2 Result , Val1, Val2, Val3, Val4 ‘викликає процедуру Product2 та
‘ отримання результату в змінній Result, тобто Result = R
‘ передача для набору Massive() чотирьох значень Val1, Val2, Val3, Val4
Debug.Print Result
End Sub
Sub Prodact2 (R As Single, ParamArray Massive())
‘процедура в якій знаходиться добуток елементів набору Massive
Dim A ‘елемент із набору Massive
R=1
For Each A in Massive()
R=R*A
Next A
End Sub
Оператор Static використовується в процедурах для збереження змінної в процедурі і після, того як вона передасть цю змінну процедурі, що викликається:
Static ім'я_змінної As тип
Іноді потрібно дозволити користувачеві не визначати деякий аргумент, або використовувати замість нього значення за умовчанням. У цих випадках перед ім'ям такого аргументу в заголовку процедури вказується ключове слово Optional. Така процедура повинна містить перевірку даного аргументу за допомогою функції IsMissing() і якщо він відсутній, використовувати замість нього значення за умовчанням, яке обумовлюється.
Приклад:
Sub Prodact3 (R1 As Single, Val1 As single, Optional Val2)
If IsMissing(Val2) Then Val2=1
R1=Val1*Val2
End Sub
Sub Program6()
Dim Result As Single, Val1 As Single, Val2 As Single
Val1 = 5
Val2 = 7
Product3 Result, Val1 ‘ викликає процедуру Product3 та
‘ отримання результату в змінній Result, тобто Result = R1
‘ передача для змінної Val1 значення Val1,а для змінної Val2 значення не передаємо
Debug.Print Result
Product3 Result, Val1, Val2 ‘ викликає процедуру Product3 та
‘ отримання результату в змінній Result, тобто Result = R1
‘ передача для змінної Val1 значення Val1,а для змінної Val2 значення Val2
Debug.Print Result
End Sub