- •Тема.2 Основні поняття про середовище програмування
- •1. Виникнення та застосування vba.
- •2.Принципи візуального об’єктна-орієнтованого програмування.
- •3.Типи даних, змінні та константи vba
- •4. Операції, вбудовані функції, оператори та підпрограми vba.
- •2) Do While умова Оператори
- •5. Процедури обробки помилок і відладки програм
2) Do While умова Оператори
Loop
3) Do
Оператори
Loop Until умова
4) Do
Оператори
Loop While умова
Ці варіанти циклів мають багато спільного. Вибір того чи іншого варіанта циклу зумовлюється логікою програми. В усіх варіантах ключове слово Do починає цикл, а ключове слово Loop завершує його. У перших двох варіантах умова перевіряється в першому рядку циклу, а в других двох — в останньому рядку циклу. В циклі з Until оператори тіла циклу повторюються поки умова хибна, в циклі з While оператори тіла циклу повторюються поки умова залишається істинною.
Як і в циклі For, у циклі Do існує можливість передчасного завершення циклу. Для цього використовується оператор Exit Do.
Підпрограми VВА
Дії, що повинні виконуватися в програмі, описуються в спеціальних синтаксичних конструкціях, які називаються підпрограмами. У VВА є два типи підпрограм - процедури та функції. Синтаксична структура та зміст обох видів підпрограм аналогічні, однак призначення та спосіб їх використання відрізняються. Процедури призначені для завдання сукупності дії, спрямованих на реалізацію певних програмних змін. Функції, як правило, містять алгоритми обчислення певних значень.
Опис підпрограми в загальному випадку складається з трьох частин:
заголовка, що активізує підпрограму;
локального опису, в якому міститься оголошення об'єктів і змінних підпрограми, над якими будуть здійснюватися дії;
блок реалізації (тіло підпрограми), в якому містяться інструкції, що є змістом програми.
Підпрограма типу Sub (процедура) призначена для створення процедур, які формально не залежать від подій і можуть бути викликані з довільного місця додатка. У результаті виконання процедури може повертатися як кілька значень, так і жодного. Процедура типу Sub завжди розміщується в розділі оголошень General, оскільки з нею не пов'язаний жодний елемент управління.
Синтаксис процедури такий:
[Private|Public] [Static] Sub пате[(arglist)]
Оператори
End Sub
де пате- ім'я процедури,
atglist- список змінних, що передають у процедуру значення для обробки.
Підпрограма типу Function (функція) подібна до процедури, однак вона обов'язково повертає значення.
Значення, яке повертає функція, завжди асоціюється з її ім'ям, якому в тілі підпрограми присвоюється відповідне значення.
Синтаксис функції такий:
[Private|Public] [Static] Function пате[(arglist)][As type]
Оператори
Name=вираз
End Function
де пате — ім'я функції;
atglist- список змінних, що передають у функцію значення для обробки;
type - тип даних, які повертаються функцією.
5. Процедури обробки помилок і відладки програм
Типи помилок VBA
Умовно всі помилки розробника можна поділити на три категорії: синтаксичні помилки, помилки виконання та логічні помилки.
Синтаксичні помилки виникають при неправильному написанні ключових слів, їх пропуску чи інших граматичних помилках. Їх доволі нескладно виявити, оскільки редактор VBA помічає їх одразу після введення, виділяючи помилковий код червоним кольором і виводячи попередження у вікно повідомлень. Інколи таке попередження прямо вказує на причину помилки, інколи опис досить заплутаний. У будь-якому разі повідомлення сигналізує про помилку програмного коду, яку необхідно виправити.
Помилки виконання виявити складніше, ніж синтаксичні помилки. Такі помилки виникають, коли в програмному коді наявна похибка, проте вона не проявляється до запуску та виконання програми. Причинами таких помилок можуть бути:
-некоректні дані, введені користувачем (наприклад, потрібно ввести число, а користувач вводить стрічку);
некоректність обчислень, зокрема, ділення на нуль;
некоректна інформація при зчитуванні файлу з диска.
У даному випадку на екрані відображається діалогове вікно з повідомленням про номер помилки й можливу причину, що її викликала. Якщо «діалоговому вікні натиснути кнопку „Debug>, то в рядку модуля жовтим кольором буде виділений рядок, що викликає помилку. Крім того, даний рядок буде помічений стрілкою. При перериванні програми VBA переходить у відповідний режим. Однією з важливих властивостей режиму переривання є можливість визначити поточне значення змінних і властивостей. Для цього достатньо розмістити вказівник мишки на імені змінної або властивості.
3. Логічні помилки виявити та усунути найважче. Ці помилки не призводять до переривання виконання програми, тобто візуально все відбувається так, ніби програма працює правильно. Але це лише хибне враження, оскільки програма видає неправильні результати. Виявлення логічних помилок пов'язане з детальним аналізом алгоритму програми із залученням засобів відладки VBA
Засоби відладки VBA
1. Покрокове виконання програми. Редактор VBA дозволяє виконувати покрокову обробку програми. Для виконання програми в покроковому режимі можна скористатися однією з нижченаведених команд:
Debug-Step Info - послідовно, крок за кроком, здійснює відладку всієї програми, разом із процедурами, що викликаються в програмі;
Debug-Step Over- так само послідовно здійснює відладку усієї програми, за винятком процедур. Отже, якщо в програмі зустрічається процедура, вона одразу буде виконана повністю, а не покроково;
Debug-Step Out - завершує виконання поточної процедури й зупиняє процес покрокової відладки на інструкції, наступній після тієї, що викликала процедуру;
Debug-Run to Cursor - виконує програму до інструкції, на якій установлено курсор
2. Точка зупинки. Точкою зупинки називається точка виконання, в якій відбувається переривання виконання програми й перехід до покрокової відладки програми. Коли відладка програми доходить до рядка програмного коду, в якому знаходиться точка зупинки, виконання програми зупиняється й очікуються подальші вказівки від користувача.
Для встановлення точки зупинки потрібно виконати одну з таких дій:
- встановити вказівник миші в потрібний рядок і клікнути мишкою в полі, що знаходиться лівіше вікна редагування;
встановити вказівник миші в потрібний рядок і виконати команду контекстного меню Toggle - Breakpoint;
встановити курсор у потрібний рядок і виконати команду головного меню Debug -Toggle Breakpoint.
При цьому зліва від рядка з'явиться червона крапка, яка і є точкою зупинки. Зауважимо, що в одному проекті може бути декілька точок зупинки.
3. Виведення значень властивостей і змінних. Для відображення поточних значень даних у процесі виконання програми використовується діалогове вікно Quick Watch, що виводиться на екран командою View-Quick Watch або Debug - Quick Watch. У вікні одночасно можна відобразити значення декількох змінних. Для того, щоб задати нове контрольне значення використовується команда Debug - Add Watch. Видаляється контрольне значення за допомогою клавіш Delete.
Програмна обробка помилок. Оператор Оп Error
Вище були розглянуті помилки, що робить розробник програми. Проте існує ще одна категорія помилок — ті, які допускає користувач при введенні даних. Важливим завданням розробника є відстеження та програмна обробка можливих помилок користувача.
Один із методів обробки помилок користувача полягає у використанні оператора Оп Error, що дозволяє відстежувати виникнення помилок. Цей оператор може бути записаний у таких варіантах:
Оп Еrrоr Gо То мітка — при виконанні помилки відбувається перехід до мітки й виконання операторів, що йдуть за нею;
Оп Еrrоr Resume Next — рядок, в якому виявлена помилка, ігнорується, а програма продовжує виконуватися з наступного рядка;
Оп Еrrоr Gо То О — виконується відключення обробника помилок у поточній процедурі.