- •Лабораторна робота №1 Вивчення середовища розробки додатків
- •Знайомство з середовищем Visual Basic For Applications
- •Порядок запису макросу за допомогою засобів автоматичного запису макросів (рекордера)
- •Питання для самоконтролю і завдання:
- •Лабораторна робота № 2. Процедури-функції Visual Basic For Applications
- •Методичні вказівки.
- •Створення процедури-функції.
- •Створення процедури-функції з операторами умовного переходу.
- •Питання для самоконтролю:
- •Завдання на роботу:
- •Лабораторна робота №4 Обмін даними між процедурою користувача, робочим листом і користувачем
- •Загальні відомості
- •Лабораторна робота №5. Створення процедур у vba з багаторазовими повтореннями (циклічні структури).
- •Порядок роботи:
- •Приклад створення екранної форми
Знайомство з середовищем Visual Basic For Applications
Для того, щоб дізнатися, які модулі записані в певній книзі і подивитися текст цих модулів, вам знадобиться редактор мови VBA. Редактор VBA — це інструмент для створення модулів і проглядання їх вмісту, створення і редагування тексту макросу, створення діалогових вікон і рішення інших задач, з якими вам доводиться стикатися при роботі з програмами на мові VBA.
Запуск редактора VBA. Зробити це можна двома способами.
Вибрати в меню СервисМакросРедактор Visual Basic;
Натиснути клавішну команду <Alt+F11>.
В результаті запуститься редактор VB и на дисплею з’явиться наступне вікно:
Рис. 1. . Вікно редактора VBA: панель інструментів; 2 - вікно проекту; 3 - вікно властивостей; 4 - вікно коду, що редагується; 5 - вікно Immediate.
Елементи вікна редактора: Вікно редактора VBA містить три дочірні вікна. Кожне з дочірніх вікон надає деяку інформацію про ваш проект. Нагадаємо, що проектом називаються модулі і інші об'єкти, збережені в робочій книзі Excel або в шаблоні книги. Зазвичай дочірні вікна розміщені біля кордону батьківського вікна — праворуч, ліворуч, зверху або знизу. За умовчанням дочірні вікна редактора VBA розташовані у лівій межі.
При бажанні, ви можете перемістити будь-яке вікно в нове положення, просто перетягуючи його за рядок заголовка — точно так, як і будь-яке вікно на робочому столі Windows. Перетягнувши притиснуте вікно від межі, ви отримаєте плаваюче вікно. (Плаваючим називається вікно, яке завжди знаходиться поверх інших вікон). Крім того, ви можете міняти розміри дочірніх вікон, перетягуючи їх межі — так само, як ви це робите з рештою вікон.
Наведемо опис вікон редактора VBA:
Вікно проекту (Вікно Project). У вікні Project ви бачите деревоподібну структуру, що описує ваш проект: відкриті в даний момент книги, об'єкти, що містяться в цих книгах (модулі, форми і т.д.). Це вікно призначене для пошуку модулів і інших об'єктів у вашому проекті. За умовчанням вікно Project виглядає подібно вікну програми Explorer і відображає теки вашого проекту, як на малюнку. Клацання на значку “+” зліва від елементу розгортає дану гілку дерева, а клацання на знаку “ - “ згортає цю гілку. Для того, щоб вибрати об'єкт у вікні Project, потрібно клацнути на цьому об'єкті.
Рис. 2. Вікно проекту
Для перемикання режимів відображення клацніть на кнопці Toggle Folders (теки). У вікні Project, крім кнопки Toggle Folders, є ще дві кнопки: View Code і View Object. Кнопка View Object відображає об'єкт, вибраний у вікні Project, а кнопка View Code відображає текст модуля у вікні Code.
Вікно властивостей (Вікно Properties). У цьому вікні приведені властивості вибраного в даний момент об'єкту. Іноді, властивості об'єкту складаються тільки з його імені. На вкладці Alphabetic об'єкти приведені в алфавітному порядку. На вкладці Categorized об'єкти відсортовані по категоріях.
Вікно програмного коду (Вікно Code). У вікні Code ви бачите текст макросів. Саме у цьому вікні ви будите читати, створювати і редагувати свої макроси. За умовчанням модуль відображається у режимі Full Module (уявлення повного модуля). У цьому режимі проглядання в вікні відображається весь модуль зі всіма макросами, що входять до нього. Кожний макрос, відділяється від сусіднього тонкою межею. Редактор VBA дозволяє проглядати модулі у режимі Procedure View. Режими поглядання можна міняти кнопками, що розташовані у лівому нижньому куті вікна Code.
Основні правила по роботі з редактором VBA.
Набираючи код (текст) макросу в листі модуля, не забувайте робити відступи, вводити порожні рядки і поміщати коментарі, для того, щоб зробити програму більш читабельною;
Після введення рядка коду Excel перевіряє, чи немає в ній синтаксичних помилок. І якщо немає, то рядок коду переформатується, а ключові слова і ідентифікатори виділяються відповідними кольорами. В результаті такого автоматичного переформатування в потрібних місцях додаються пропуски (наприклад, до і після знаку рівності), а в непотрібних — видаляються. Якщо знайдена синтаксична помилка, ви отримаєте повідомлення про це і відповідний рядок буде виділено іншим кольором (за умовчанням червоним). Перш ніж запускати макрос, необхідно виправити помилку.
Оператор VBA може мати будь-яку довжину. Але деколи (у ваших же інтересах) його варто розмістити в декількох рядках. В цьому випадку в місці передбачуваного розбиття потрібно вставити пропуск і символ підкреслення (_). Не дивлячись на те що наступний фрагмент програми займає два рядки, насправді він є одним оператором VBA. Наприклад:
Sheets("Лист1").Range("Bl")-Value _
Sheets("Лист1").Range("Al").Value
У текст програми на мові VBA можна вільно вставляти коментарі. Індикатором коментарю є символ апострофа. Будь-який текст, наступний за апострофом, ігнорується. Коментар може займати цілий рядок або вставлятися за оператором. У наступних прикладах демонструється використання двох коментарів:
‘Привласнити значення змінним
Rate = .085 ‘ Курс на 16 листопада
Загальні правила запису макросу за допомогою засобів автоматичного запису макросів (рекордера)
Як правило, запис макросу складається з чотирьох кроків:
Створення початкових умов для макросу. Передбачає приведення вашого програмного середовища в точно такий стан, в якому ви будете виконувати записуваний макрос.
Запустити запис макросу і задати йому ім'я. Як тільки ви запустите запис макросу, вам необхідно буде дати йому відповідне ім'я і вказати, де зберегти цей макрос. Записуючи макрос в програмі Excel, ви можете також призначити йому комбінацію клавіш.
Виконати дії, які ви хочете записати. Можуть бути записані будь-які дії, які ви виконуєте за допомогою миші або клавіатури, включаючи виконання раніше записаних макросів.
Зупинити запис макросу. Після зупинки запису ваші дії вже не фіксуються. Новий макрос готовий до застосування відразу після зупинки запису.
Створення початкових умов. Перш ніж записувати макрос, ви повинні створити такі самі умови, в яких потім ви його виконуватимете. Припустимо, наприклад, що ви хочете створити макрос, який задаватиме шрифт, кегль і колір тексту у виділених осередках листа Excel. Початковими умовами для такого макросу буде відкритий лист Excel з виділеною однією або декількома осередками.
Ви обов'язково повинні створити початкові умови перед початком запису, тому що, якщо ви почнете запис, а потім відкриєте лист і станете виділяти осередки, всі ці дії будуть записані в макросі. В результаті ваш макрос буде вже дуже специфічний — він завжди відкриватиме одну і ту ж книгу, один і той же лист і форматувати в нім одні і ті ж осередки. Для того, щоб створити універсальний макрос для форматування комірок, вам потрібно відкрити книгу, вибрати в ній лист і виділити осередки до початку запису. Коли початкові умови створені, можна приступати до запису макросу.
Початок запису макросу. Для того, щоб почати запис макросу в програмі Excel, виберіть в меню СервисМакросНачать запис. Excel розкриє діалогове вікно Запис макросу. У цьому вікні ви повинні задати ім'я макросу і вказати, де його зберегти. Вказати ім'я і місце збереження потрібно до того, як ви почнете запис макросу. У цьому ж вікні ви можете задати комбінацію клавіш, якою макрос запускатиметься на виконання.
Зауваження: Ім'я макросу повинне починатися буквою, але потім може містити і цифри. Воно не може містити пропусків і знаків пунктуації. Довжина імені макросу не повинна перевищувати 63 символи.
У діалоговому вікні Запис макросу є чотири елементу керування (Малюнок 3).
1. Текстове поле Ім'я макросу. Це перший параметр, який вам потрібно вказати в цьому діалоговому вікні. За умовчанням VBA пропонує вам ім'я, що складається із слова Macro з подальшою цифрою, відповідною порядковому номеру створюваного в цьому сеансі роботи макросу. Краще замінити це ім'я на яке-небудь осмислене. Наприклад, якщо ви створюєте макрос, що будує діаграму на підставі даних поточного листа, можете назвати цей макрос Діагр_продаж
2. Текстове поле Поєднання клавіш (сочетание клавиш). У цьому полі ви можете задати комбінацію клавіш, за допомогою якої ваш макрос запускатиметься на виконання. Просто введіть в поле відповідний символ на клавіатурі. Цим є сенс користуватися в тому випадку, якщо ви збираєтеся застосовувати свій макрос часто. Якщо була введена в цьому полі букву <a>, комбінацією для запуску цього макросу буде <Ctrl+а>, якщо ви введете <A>, комбінацією буде <Ctrl+Shift+A>.
3. Список зберегти. У цьому списку ви указуєте, де треба буде зберігати новий макрос. Можливі варіанти такі: Особиста книга макросів, Нова книга, Ця книга. Якщо ви виберете Особиста книга макросів, ваш новий макрос буде записаний в спеціальній книзі з назвою Personals.xls, яка відкривається при кожному запуску програми Excel. Такий вибір доречний тоді, коли ви хочете, щоб новий макрос був доступний при будь-якому сеансі роботи з Excel. Якщо ви виберете Ця книга, ваш макрос запишеться в поточній відкритій книзі. Цей варіант годиться, якщо ви хочете, щоб макрос був доступний тільки при роботі з цією книгою. Вибравши Нова книга, ви примусите Excel створити нову книгу і зберегти макрос в ній. При цьому активною залишиться та книга, яка була у вас відкрита перед записом макросу, і всі ваші дії будуть застосовані саме до неї, а не до нової книги. Незалежно від того, в якій книзі ви вирішите зберегти макрос, він буде записаний в ній у вигляді модуля. Що таке модулі, ми з'ясуємо раніше.
4. Текстове поле Опис (описание). Інформація в цьому полі макросом не використовується, а служить для вас і тих, хто користуватиметься вашим макросом. Тут дуже корисно вказати, для чого макрос призначений і що він робить. На початку запису Excel поміщає сюди поточну дату і ім'я користувача, яке вказане на вкладці Загальні діалогового вікна Параметри в меню Сервіс.
Зауваження: Завжди вибирайте для своїх макросів осмислені імена, щоб по імені можна було судити про те, що робить макрос або для чого він призначений. Завжди вводите в поле Опис необхідні коментарі, наприклад відомості про те, чи потрібно перед запуском макросу відкрити певну книгу або виділити какие-то осередки.
