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

Всім нам доводиться - кому рідше, кому частіше - повторювати одні й ті ж дії і операції в Excel. Будь-яка офісна робота передбачає якусь "рутинну складову" - одні й ті ж щотижневі звіти, одні і ті ж дії по обробці даних, що надійшли, заповнення одноманітних таблиць або бланків і т.д. Використання макросів і призначених для користувача функцій дозволяє автоматизувати ці операції, перекладаючи монотонну одноманітну роботу на плечі Excel.

Макрос - це запрограмована послідовність дій (програма, процедура), записана на мові програмування Visual Basic for Applications (VBA). Ми можемо запускати макрос скільки завгодно раз, змушуючи Excel виконувати послідовність будь-яких потрібних нам дій, які нам не хочеться виконувати вручну.

В принципі, існує безліч мов програмування (Pascal, Fortran, C ++, C #, Java, ASP, PHP.), Але для всіх програм пакета Microsoft Office стандартом є саме вбудовану мову VBA. Команди цієї мови розуміє будь-який офісний додаток, будь то Excel, Word, Outlook або Access.

Макроси (тобто набори команд на мові VBA) зберігаються в програмних модулях. У будь-якій книзі Excel ми можемо створити будь-яку кількість програмних модулів і розмістити там наші макроси. Програмні модулі бувають декількох типів для різних ситуацій:

Звичайні модулі - використовуються в більшості випадків, коли мова йде про макроси. Для створення нового модуля виберіть в меню Insert - Module. У вікно, що з'явилося нового порожнього модуля можна вводити команди на VBA. набираючи їх з клавіатури або копіюючи їх з іншого модуля, з цього сайту чи ще звідкись небудь.

Все, що знаходиться між Sub і End Sub - тіло макросу, тобто команди, які будуть виконуватися при запуску макросу. В даному випадку макрос виділяє осередок А1, вводить в неї текст PlanetaExcel.ru. робить шрифт виділеного осередку А1 червоним (код червоного кольору = 3) і заливає осередок жовтим (код жовтого = 6).

З ходу ясно, що ось так відразу, без попередньої підготовки і досвіду в програмуванні взагалі і на VBA зокрема, важкувато буде збагнути які саме команди і як треба вводити, щоб макрос автоматично виконував всі дії, які, наприклад, Ви робите для створення щотижневого звіту для керівництва компанії. Тому ми переходимо до другого способу створення макросів, а саме.

Спосіб 2. Запис макросів макрорекордер

Макрорекордер записує тільки ті дії, які виконуються в межах вікна Microsoft Excel. Як тільки ви закриваєте Excel або перемикаєтеся в іншу програму - запис зупиняється.

Макрорекордер може записати тільки ті дії, для яких є команди меню або кнопки в Excel. Програміст ж може написати макрос, який робить те, що Excel ніколи не вмів (сортування за кольором, наприклад або щось подібне).

Якщо під час запису макросу макрорекордер ви помилилися - помилка буде записана. Однак сміливо можете тиснути на кнопку скасування останньої дії (Undo) - під час запису макросу макрорекордер вона не просто возрвращает Вас в попередній стан, а й пере останню записану команду на VBA.

Щоб почати запис необхідно вибрати в меню Сервіс - Макрос - Почати запис (Tools - Macro - Record New Macro) і налаштувати параметри записуваного макросу у вікні Запис макросу.

Ім'я макросу - підійде будь-яке ім'я російською або англійською мовою. Ім'я повинно починатися з літери і не містити пропусків і розділових знаків.

Швидкий доступ - буде потім використовуватися для швидкого запуску макросу. Якщо забудете поєднання або взагалі його не введете, то макрос можна буде запустити через меню Сервіс - Макрос - Макроси - Виконати (Tools - Macro - Macros - Run).

Зберегти в. - тут задається місце, куди буде збережений текст макросу, тобто набір команд на VBA з яких і складається макрос.

Ця книга - макрос зберігається в модуль поточної книги і, як наслідок, буде виконуватися тільки поки ця книга відкрита в Excel

Нова книга - макрос зберігається в шаблон, на основі якого створюється будь-яка нова порожня книга в Excel, тобто макрос буде міститися у всіх нових книгах, створюваних на даному комп'ютері починаючи з поточного моменту

Особиста книга макросів - це спеціальна книга Excel з ім'ям Personal.xls. яка використовується як сховище макросів. Всі макроси з Personal.xls завантажуються в пам'ять при старті Excel і можуть бути запущені в будь-який момент і в будь-якій книзі.

Після включення запису і виконання дій, які необхідно записати, запис можна зупинити командою Сервіс - Макрос - Остановить запись (Tools - Macro - Stop Recording).

Запуск і редагування макросів

Управління всіма доступними макросами проводиться у вікні, яке можна відкрити через меню Сервіс - Макрос - Макроси (Tools - Macro - Macros).

Будь виділений в списку макрос можна запустити кнопкою Виконати (Run).

Створення кнопки для запуску макросів

Щоб не запам'ятовувати поєднання клавіш для запуску макросу, краще створити кнопку і призначити їй потрібний макрос. Кнопка може бути двох типів:

Кнопка на панелі інструментів

Перетягніть її до себе на панель інструментів і потім клацніть по ній правою кнопкою миші. У контекстом меню можна призначити кнопці макрос, вибрати інший значок і ім'я:

Кнопка на аркуші

Відкрийте панель інструментів Форми (Вид - Панелі інструментів - Форми) і виберіть об'єкт Кнопка:

Потім намалюйте кнопку на аркуші, утримуючи ліву кнопку миші. Автоматично з'явиться вікно, де потрібно вибрати макрос, який повинен запускатися при натисканні на намальованою кнопці.

Створення призначених для користувача функцій на VBA

Створення призначених для користувача функцій або, як їх іноді ще називають, UDF-функцій (User Defined Functions) принципово не відрізняється від створення макросу в звичайному програмному модулі. Різниця тільки в тому, що макрос виконує послідовність дій з об'єктами книги (осередками, формулами і значеннями, листами, діаграмами і т.д.), а призначена для користувача функція - тільки з тими значеннями, які ми передамо їй як аргументи (вихідні дані для розрахунку ).

Після вибору функції виділяємо комірки з аргументами (з сумою, для якої треба порахувати ПДВ) як у випадку зі звичайною функцією:

НОВИНИ ФОРУМУ
Лицарі теорії ефіру

Схожі статті