Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции-вба.doc
Скачиваний:
12
Добавлен:
05.05.2019
Размер:
164.86 Кб
Скачать

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

Умовно всі помилки розробника можна поділити на три категорії: синтаксичні помилки, помилки виконання та логічні помилки.

  1. Синтаксичні помилки виникають при неправильному написан­ні ключових слів, їх пропуску чи інших граматичних помилках. Їх доволі нескладно виявити, оскільки редактор VBA помічає їх одразу після введення, виділяючи помилковий код червоним кольором і виводячи попередження у вікно повідомлень. Інколи таке попередження прямо вказує на причину помилки, інколи опис досить заплутаний. У будь-якому разі повідомлення сигналізує про помилку програмного коду, яку необхідно виправити.

  2. Помилки виконання виявити складніше, ніж синтаксичні по­милки. Такі помилки виникають, коли в програмному коді наявна по­хибка, проте вона не проявляється до запуску та виконання програми. Причинами таких помилок можуть бути:

-некоректні дані, введені користувачем (наприклад, потрібно ввести число, а користувач вводить стрічку);

  • некоректність обчислень, зокрема, ділення на нуль;

  • некоректна інформація при зчитуванні файлу з диска.

У даному випадку на екрані відображається діалогове вікно з пові­домленням про номер помилки й можливу причину, що її викликала. Якщо «діалоговому вікні натиснути кнопку 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о То О — виконується відключення обробника поми­лок у поточній процедурі.

10