Структура макросу
Макрос починається з ключовогослова Sub, за яким слідує ім'я макросу. Рядок, що містить ключове слово Sub і ім'я макросу, називають рядком оголошення макросу. За ім'ям завжди слідують порожні круглі дужки. У макрос можна включати коментарі, які не містять інструкцій. Рядок коментарю починається з апострофа. Відразу за оголошенням макросу слідує тіло макросу, яке може включати або не включати рядки коментарів. Кожен рядок макросу складається з одного або більш операторів VBA. Оператор - це послідовність ключових слів і інших символів, які разом складають одну повну інструкцію для VBA. Макрос в VBA полягає з одного або декількох операторів. За тілом макросу слідує рядок, що містить ключові слова End Sub, які повідомляють VBA, що досягнутий кінець макросу.
На кольоровому єкрані монітора різні частини тексту макросу відображуються різними кольорами:
Ø коментарі відображаються зеленим кольором ;
Ø ключові слова – синім;
Ø решта тексту – чорним кольором для вказівки на те, що він містить дані і дані програмних операторів.
Ø якщо в рядку є синтаксичні помилки, то він виділиться червоним кольором.
Запишемо приклад простого макросу, якому дамо ім'я Приклад|, що містить команду подачі звукового сигналу при його виконанні.
Sub Приклад ( ) рядок оголошення макросу
Мій перший макрос коментар
Веер інструкція (оператор) тіло макросу
End Sub кінець процедури
4. Типи даних
Тип даних - термін, що відноситься до певних видів даних, які VBA зберігає і якими може маніпулювати.
Числа
VBA має декілька різних чисельних типів даних таких як: Byte, Integer, Long, Currency.
Чисельні типи даних використовуються для зберігання і маніпулювання чисел в різних форматах, залежно від конкретного типа. Чисельний тип, що заповнює велику частку пам'яті (що має найбільший діапазон можливих значень), займає не більше восьми байтів пам'яті для зберігання чисел, які можуть мати до 300 цифр.
Цілий тип даних:
Byte - для зберігання чисел від 0 до 255
Integer - діапазон чисел від -32768 до 32768
Long - довге ціле -214783648 до 214783648
Найчастіше їх використовують для операцій підрахунку, внаслідок їх компактного розміру і великої швидкості виконання арифметичних операцій.
Тип даних Currency - це число із фіксованою крапкою, тобто десяткова крапка завжди перебуває в одному і тому ж місці - праворуч від десяткової крапки завжди є 4 цифри.
Текстові дані
Текстові рядки зберігаються з використанням типа даних String. Рядок може містити текстові символи будь-яких типів: літери, цифри, знаки пунктуації або різні символи. Рядки в коді VBA завжди беруться в подвійні лапки
Логічні дані
Логічні значення True, False називаються булевими (Boolean). Їх назва пов'язана з ім'ям математика, що розробив систему математичної логіки.
Тип даних Variant
Це особливий тип даних, який може зберігати будь-які типи. VBA використовує тип Variant для всіх змінних, якщо тільки не оголошується тип змінної. Цей тип вимагає більшого обсягу пам'яті, ніж будь-який інший тип даних. Крім того, математичні операції і операції порівняння над даними типу Variant виконуються повільніше, ніж подібні операції над даними будь-якого іншого типу.
Змінна - це область, де програми зберігають значення. Змінна створюється шляхом привласнення їй імені. При виборі імені змінної необхідно дотримуватись наступних правил:
· ім'я змінної повинне починатися з літери;
· після першої літери можуть стояти будь-які комбінації цифр, літер або знаків підкреслення;
· імена змінних не повинні містити прогалини, крапку або символ для позначення математичних операцій і операцій порівняння;
· імена змінних не можуть перевищувати 255 символів;
· імена змінних повинні бути унікальними в рамках їх області дії (тобто в межах процедури або модуля). Процедура - це блок програмного коду.
Не має значення якими літерами, прописними або заголовними, писати ім'я змінної.
При неявному оголошенні можна задавати тип змінної, додаючи спеціальний символ, званий символом визначення типу, в кінець змінної.
Символ Тип
! Single
@ Currency
$ String
% Integer
& Long
Функції обміну даними з|із| користувачем MsgBox, InputBox.
1 Функція MsgBoxмає наступний синтаксис:
MsgBox(Prompt [,Buttons] [,Title]
де:
Prompt (повідомлення) – це текст того повідомлення, що повинне відображатися в діалоговому вікні. Це обов'язковий аргумент, всі інші – ні.
Buttons (кнопки) – цей аргумент можна опустити.
Title (заголовок) – це текст, що буде розташований у рядку заголовка діалогового вікна. Якщо цей параметр буде опущений, то в заголовку буде “Microsoft Excel”.
2 Для одержання вхідних даних від користувача використовують функцію InputBox, що відображає діалогове вікно, що містить текст, який запитує користувача ввести деякі значення і текстове поле для введення цього значення. Діалогове вікно InputBoxмістить командні кнопкиОК і Cancel.
ФункціяInputBoxмає наступний синтаксис:
InputBox(Prompt [, Title]
де:
Prompt (повідомлення) – що підказує повідомлення, яке потрібно вивести в діалогове вікно – обов'язковий елемент. Інші ні.
Title – заголовок вікна.
Рекомендована література[ 6,10,20,23 ]
Питання для самоконтролю
1. Способи створення|створіння| макросу. Що таке Макрорекордер|?
2. Що таке оператор?
3. Вимоги до імені макросу.
4. Перерахуйте різновиди макросів.
5. Вкажіть в яких випадках ім'я макросу записано невірно, поясніть тип
помилки:
а) Sub;
б) End;
в) Пример_1;
г) Пример 2;
д) Пример3.
6. Яку структуру має макрос?
7. Як можна запустити макрос на виконання?
8. Що таке змінна?
9. Як можна оголошувати змінні?
10. Для чого призначений оператор Dim?
11. Вкажіть в якому випадку ім'я змінної вказане невірно та проаналізуйте помилки:
а) Налог;
б) 1Налог;
в) Проц Ставка;
12. Як оголошені змінні і який вони мають тип?
а) Dim Налог As Currency;
б) Dim Пример As String;
в) Temp$
г) M!
Практичні завдання у створенні макросів за допомогою VBA
1 Завантажити програму Excel і відкрити свій файл.
2 Для виклику редактора VBA натисніть комбінацію клавіш Alt+F11. Якщо на екрані відсутнє вікно для введення коду, виконайте команду Вставка → Модуль.
3 Введіть текст першого макросу з ім′ям Привіт.
Текст макросу | Пояснення рядків (не вводити) |
Sub Привіт () Dim Hello As String Hello="Привіт!" Titles$="Вікно вітання" MsgBox Hello, , Titles$ End Sub | Оголошення макросу Оголошення текстової змінної з іменем Hello Присвоєння змінної значення Значення заголовка вікна Функція виводу вікна на екран Закінчення макросу |
4 Перевірити роботу макросу, не виходячи з редактора можна натисканням функціональної клавіші F5. У випадку помилок його можна відразу відредагувати.
Відповідайте на питання:
а) як оголошена змінна Hello і який її тип?
б) як оголошена змінна Titles і який її тип?
в) чому у функції МsgВох є пробіл між двома аргументами?
5 Знаходячись у вікні редактора VBA, введіть наступну процедуру:
Sub Коло ()
Dim R@,S@
BoxTitle="Площа кругу"
R=InputBox("Уведіть радіус кола", BoxTitle)
S=3.14*R^2
MsgBox, , BoxTitle
End Sub
6 Запустіть процедуру на виконання.
7 Запишіть текст процедури в зошит з поясненням призначення кожного рядка. Який тип має змінна S?
Для повернення у вікно програми Excel можна:
а) закрити|зачинити| вікно редактора;
б) виконати команду Файл→Закрыть|зачинити|і повернутися в Microsoft Excel;
в) натиснути|натискувати| комбінацію клавіш Alt+Q.
Робота з|із| функціями VBA. Керуюча інструкції If Then Else.(если-то-иначе)
1 Завантажити програму Excel і відкрийте|відчиніть| свій файл. Запустіть редактор VBA і введіть|запровадьте| наступну процедуру