- •1. Теоретичні питання 76
- •2. Тести 76
- •3. Практичні завдання 76
- •1. Теоретичні питання 90
- •2. Тести 90
- •3. Практичні завдання 90
- •1. Теоретичні питання 103
- •2. Тести 103
- •3. Практичні завдання 103
- •Алгоритми. Алгоритмічна мова
- •1. Алгоритм і його властивості
- •2. Поняття алгоритму
- •3. Схеми алгоритмів
- •4. Графічне зображення різних видів обчислювальних процесів
- •4.1. Графічне зображення лінійних обчислювальних процесів
- •4.2. Графічне зображення розгалужених обчислювальних процесів
- •4.3. Графічне зображення циклічних обчислювальних процесів
- •1. Створення і управління макросами
- •Запис макросу
- •Зміна макросу
- •Перегляд і зміна макросів
- •Управління макросами
- •Безпека макросів
- •2. Способи виконання макросу
- •Запуск макросу на виконання в Microsoft Excel
- •Запуск макросу на виконання з редактору Visual Basic
- •Основні елементи мови Visual Basic
- •1. Організація програми на мові vb для Excel
- •2.Створення і вживання процедур
- •4. Типи даних
- •5. Зона дії змінних і процедур
- •6. Масиви
- •7. Константи
- •8. Перетворення типів
- •12.Операції vb
- •13.Використання функцій vb
- •14.Строкові функції
- •15.Функції дати і часу
- •16.1.Методи об'єктів
- •16.2. Контейнери і набори об'єктів
- •17.Використання властивостей, що характеризують активність
- •18.Використання властивостей, що характеризують вміст
- •19. Властивості форматування
- •20.Методи роботи з таблицями
- •22. Створення і вживання функцій
- •23.1.Логічні вирази
- •23.2.Структура оператора if - then
- •24.Структура оператора Select Case
- •25. Неструктурований перехід
- •26.1.Циклічна структура for – next
- •26.2.Оператор for each - next (для кожного - наступного)
- •27. Логічні цикли
- •27.1.Вживання циклу do-loop
- •1. Вживання функції MsgBox()
- •1.1. Створення простого вікна повідомлення
- •1.2. Додавання командних кнопок у вікно повідомлення для створення діалогового вікна
- •1.3. Набуття значень від функції MsgBox()
- •2. Вживання функції InputBox()
- •3. Вживання діалогових вікон інших типів
- •4. Виклик діалогових вікон додатка
- •Р исунок 1. Нова, чиста сторінка діалогу Excel
- •29. Розташування об'єктів форми в бланк (вікно діалогу)
- •29.1.Об'єкт "Командна кнопка"
- •29.3.Об'єкт "Вікно редагування'
- •29.4.Об'єкт "Групове вікно"
- •29.5.Об'єкт "Контрольний індикатор"
- •29.6.Об'єкт "Кнопка вибору"
- •29.7.Об'єкт "Вікно списку"
- •29.8.Об'єкт "Випадаюче вікно"
- •29.9.Комбінований об'єкт "Вікно список-редагування"
- •29.10.Комбінований об'єкт "Вікно випадаючий список-редагування"
- •29.11.Об'єкт "Лінійка прокрутки"
- •29.12.Об'єкт "Спіннер"
- •30. Підключення процедур до об'єктів діалогового вікна користувача
- •31. Відображення діалогового вікна користувача
- •32.Файли послідовного доступу
- •32.1.Читання і запис послідовних файлів
- •32.2.Відкриття файлу
- •32.3.Закриття файлу
- •32.4. Запис у файл за допомогою оператора Print
- •32.5.Запис у файл оператором Write
- •32.6.Читання з файлу
- •33.Запис даних у файл довільного доступу
- •33.1.Читання і запис файлів довільного доступу
- •33.2.Відкриття файлу
- •33.3. Закриття файлу довільного доступу
- •33.4. Визначення структури та довжини запису
- •33.5.Запис даних у файл
- •33.6. З читування даних з файлу
17.Використання властивостей, що характеризують активність
Властивості, що характеризують активність, часто використовують в методах Select і Active.
Метод Select вибирає область клітин або сторінку.
Метод Active робить активним окрему клітину в рамках поточного вибору.
Властивість ActiveВook застосовується до робочої книги, що відображується в даний момент.
Властивість ActiveSheet – до поточної сторінки активної робочої книги.
Властивість ActiveCell завжди застосовується до одиничного об'єкту Range, що містить активну клітину поточної сторінки.
Властивість Selection тісно пов'язана з властивістю ActiveCell, але більше відноситься до всього вибору, чим до окремої клітини. Якщо вибрана лише одна клітина, Selection і Active однотипні.
Приклади:
Sub Program()
‘Форматування вибраної клітини В3 і даних на аркуші
Sheets(“Лист1”).Select ‘ в поточній книзі вибраний лист Лист1
ActiveSheet.Range(“B3”).Select ‘ на активному (вибраному) листі вибрана клітина B3
ActiveCell.Value = 23 ‘ в активну клітину записується значення 23
ActiveCell.NumberFormat = “0.00” ‘ в активній клітині задається числовий ‘формат 0.00
ActiveCell.HorizontalAlignment = xlCenter ‘ в активній клітині задається формат ‘розташування даних по горизонталі по центру
‘Форматування вибраного діапазону кліток C5:F7
‘Форматування даних на вибраному аркуші (Лист1)
ActiveSheet.Range(“C5:F7”).Select ‘ на активному (вибраному) листі вибираємо ‘діапазон клітин C5:F7
Selection.Value = 32 ‘ заповнюємо вибраний діапазон значенням рівним 32
Selection.NumberFormat = “0.00” ‘ в вибраному діапазоні задається числовий ‘формат 0.00
Selection.HorizontalAlignment = xlCenter ‘ в вибраному діапазоні задається ‘формат розташування даних по горизонталі по центру
ActiveSheet.Range (“A1”).Select ‘ на активному листі вибрана клітина A1
End Sub
18.Використання властивостей, що характеризують вміст
Властивість Value містить поточне значення клітини (числове і символьне).
Властивість Formula характеризує вміст, який записаний у клітину.
Властивість Formula пропонує два варіанти запису посилань на клітину у формулі:
у стилі A1 (ім'я колонки - номер рядка)
у стилі R2C3 (номер рядка – номер стовпця)
19. Властивості форматування
Format/Cells > Number (для здобуття списку числових форматів)
Format/Cells > можна отримати список кольорів, фонів і рамок.
Кращим способом написання програм форматування клітин на VBА є використання макрорекордера.
Приклад: для створення макросів зразків форматування, зручно в одну клітину, наприклад С4 написати текст, в іншу, наприклад С6 написати число, включіть запис макросу (тема 2) і відформатувати потрібним чіном ці клітини, припинить запис, переглянуть утворений макрос для редагування, таким чином можливо його використання в вашій програмі подалі (посилання на цю процедуру, або всавка тексту цього макросу в ваш код програми).
20.Методи роботи з таблицями
Зручні у вживанні деякі методи об'єкту Range, такі як Cut, Copy, Paste. Ці три методи не використовують ніяких аргументів – вони просто передають вміст об'єкту Range в буфер обміну або з нього.
Зручні методи Clear і ClearContents, які або повністю очищають клітину або видаляють лише формулу і значення.
Метод PrintOut зручно використовувати для передачі об'єкту Range на принтер. Можете вибрати область, а потім надрукувати цей об'єкт: Selection.PrintOut
Контрольні завдання по темі
1. Теоретичні питання
2. Тести
3. Практичні завдання
Вживання процедур і функцій
21. Передача величин процедурі
Аргументи в заголовку процедури дають можливість визначити імена і типи величин, які будуть передані цій процедурі. За винятком глобальних змінних і змінних, визначених на рівні модуля. Всі змінні в процедурі є приватними для даної процедури, окрім вказаних як аргументи в заголовку процедури і передані цій процедурі або з неї.
Окрім оголошення змінних, які можуть передаватися в процедуру або повертатися, потрібно оголошувати типа цих змінних.
Приклад:
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 , 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
R=1
For Each A in Massive()
R=R*A
Next A
End Sub
Оператор Static використовується в процедурах для збереження змінної в процедурі і після, того як вона передасть цю змінну процедурі, що викликається:
Static ім'я_змінної As тип
В деяких випадках потрібно дозволити користувачеві не визначати який аргумент, або використовувати замість нього значення за умовчанням. У цих випадках перед ім'ям такого аргументу в заголовку процедури вказується ключове слово Optinal. Така процедура повинна містить перевірку даного аргументу за допомогою функції 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