Підтримка створення макросів на мові. Основи програмування VBA та створення макросів у додатках Microsoft Office. Дозволити використання макросів

Головна / Додатковий функціонал

Добридень!

Цю статтю я хочу присвятити такому величезному розділу MS Excel як макроси, а точніше почнемо спочатку і розглянемо, як створити макрос в Excel, для чого він потрібен і як його використовувати у своїй роботі.

Як ви знаєте з власного досвіду, при роботі з макросом є дуже багато «рутинні», тобто проводяться одні й ті ж операції та дії які потрібні для отримання результату, це можуть бути заповнення однотипних таблиць або бланків, обробка даних, схожі як близнюки щотижневі, щомісячні звіти і т.д. А ось використання макросів дозволить вам робити ці дії в автоматичному режимі, використовуючи можливості Excelна повну котушку, скидаючи ці рутинні та монотонні операції на потужні плечі Excel. Також причиною використання макросів може бути додавання потрібних можливостей, які ще не реалізовані в стандартних функціях Excel (наприклад, висновок, збір даних на одному аркуші та інше).

Якщо ви ніколи не чули про макрос, то найточнішим його визначенням буде таке, це дії, які запрограмовані на певну послідовність і записані в середовищі програмування мовою Visual Basic for Applications (VBA). Запуск макросу може проводитися багаторазово і це змусить Excel виконувати будь-яку послідовність необхідних нам дій, які вручну нам виконувати просто не подобається або не хочеться. Незважаючи на безліч мов програмування для всього комплексу Microsoft Officeстандартом є саме VBA і він працює у будь-якому додатку офісного пакета.

Отже, створити макрос в Excel можливо двома способами:

Створити макрос у Excelза допомогою макрорекордера

Для початку прояснимо, що являє собою макрорекордер і до чого тут макрос.

Макрорекордер- це вшита в Excel невелика програма, яка інтерпретує будь-яку дію користувача в кодах мови програмування VBA і записує програмний модуль команди, які вийшли в процесі роботи. Тобто якщо ми при включеному макрорекордері створимо потрібний нам щоденний звіт, то макрорекордер все запише у своїх командах покроково і як результат створить макрос, який створюватиме щоденний звіт автоматично.

Цей спосіб дуже корисний тим, хто не має навичок та знань роботи в мовному середовищі VBA. Але така легкість у виконанні та запису макросу має свої мінуси, як і плюси:

  • Записати макрорекордер може тільки те, що може помацати, а значить записувати дії він може тільки в тому випадку, коли використовуються кнопки, іконки, команди меню і все в цьому дусі такі варіанти як для нього недоступна;
  • У випадку, коли в період запису було допущено помилку, вона також запишеться. Але можна кнопкою скасування останньої дії, стерти останню команду, яку ви неправильно записали на VBA;
  • Запис у макрорекордері проводиться лише у межах вікна MS Excel і у разі, коли ви закриєте програму чи увімкнете іншу, запис буде зупинено і перестане виконуватися.

Для включення макрорекордера на запис необхідно зробити такі дії:


Наступним кроком у роботі з макрорекордером стане налаштування його параметрів для подальшого запису макросу, це можна зробити у вікні «Запис макросу», де:

  • поле «Ім'я макросу»— можете прописати зрозуміле вам ім'я будь-якою мовою, але має починатися з літери і не містити в собі розділовий знак і прогалини;
  • поле «Поєднання клавіш»— використовуватиметься надалі для швидкого старту вашого макросу. Якщо вам потрібно буде прописати нове , то ця можливість буде доступна в меню "Сервіс" - "Макрос" - "Макроси" - "Виконати"або ж на вкладці «Розробник»натиснувши кнопку «Макроси»;
  • поле «Зберегти у…»- Ви можете задати те місце, куди буде збережено (але не надіслано) текст макросу, а це 3 варіанти:
    • "Ця книга"— макрос буде записаний у модуль поточної книги та зможе бути виконаний лише у випадку, коли ця книга Excel буде відкрита;
    • «Нова книга»макрос буде збережено в той шаблон, на основі якого в Excel створюється порожня нова книга, а це означає, що макрос стане доступним у всіх книгах, які будуть створюватися на цьому комп'ютері з цього моменту;
    • «Особиста книга макросів»- є спеціальною книгою макросів Excel, яка називається "Personal.xls"та використовується як спеціальне сховище-бібліотека макросів. При старті макроси з книги "Personal.xls" завантажуються в пам'ять і можуть бути запущені в будь-якій книзі в будь-який момент.
  • поле «Опис»- Тут ви можете описати, що і як повинен робити макрос, для чого він створювався і які функції несе, це інформативне поле, що називається на згадку.

Після того як ви запустили та записали свій макрос, виконавши все потрібні дії, запис можна припинити командою «Зупинити запис»і ваш макрос за допомогою макрорекордера буде створено.

Створити макрос у Excelу редакторі Visual Basic.

У цьому способі ми розглянемо, як створити макрос в Excel через редактор програм на VBA, який, як я говорив вище, вбудований в будь-яку версію Excel.

Запуск редактора програм на VBA відбувається по-різному, залежно від версії програми Excel:

  • у версіях Excel 2003 і старше, нам потрібно в меню «Сервіс», вибрати пункт Макроста натиснути "Редактор Visual Basic";
  • у версіях Excel 2007 і новішінам потрібно на вкладці «Розробник»натиснути кнопку "Редактор Visual Basic". У разі коли ви не знаходите цю вкладку вам потрібно її активувати, вибравши пункт меню "Файл" - "Параметри" - "Налаштування стрічки"і в діалоговому вікні прапорцем активуємо вкладку «Розробник».

У вікні, що відкрилося, ви можете бачити інтерфейс редактора VBA, тут все написано англійською і русифікаторів не існує, можете не шукати, а просто змиріться і працюйте, тим більше що це тільки спочатку незрозуміло, а потім все буде звично.

Отже, як же, працювати в редакторі VBA, де що зберігається і як створити макрос в Excel. Питання такого характеру виникають одразу ж, як тільки ви побачите редактор і зараз всі їх розглядатимемо.

Всі наші макроси зберігатимуться в так званих програмних модулях. У будь-якій з книг будь-якої версії Excel нам доступне створення будь-яких програмних модулів у будь-якій кількості та розміщувати у них усі створені нами макроси. Один модуль може містити в собі будь-яку кількість потрібних вам або створених макросів. Модулі доступні у вікні "Project Explorer"і розміщуються у верхньому лівому куті редактора макросів (так само його можна викликати комбінацією клавіш CTRL+R).

Програмні модулі в редакторі VBA існують у кількох видах і використовуються для різних варіантів та ситуацій:


Власне сам макрос під час роботи у стандартному модулі виглядає так:

Розглянемо з прикладу працюючого макроса :

  • Усі макроси в обов'язковому порядку починаються з оператора Sub, після якого слідує ім'я вашого макросу і список аргументів у дужках. У випадках, коли аргументи відсутні дужки, потрібно залишити порожніми;
  • В обов'язковому порядку всі макроси закінчуються оператором End Sub;
  • Дані, що знаходяться між операторами Subі End Subє тілом макросу, яке буде працювати при запуску макросу. У прикладі, макрос перевіряє і при введенні даних знаходить їх у списку бази даних і виводячи зазначене за критеріями значення.

Як бачите другий спосіб більш важкий у використанні та розумінні, якщо у вас відсутній досвід у програмуванні взагалі або зокрема VBA. Дуже складно зрозуміти і розібратися, які команди і як вводяться, які аргументи він використовує для того, щоб макрос почав виконувати свою роботу в автоматичному режимі. Але дорогу здолає той, хто йде, як казали древні мудреці і тому і вам не варто опускати руки, а слідувати заповідям дідуся Леніна.

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

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


Даний спосіб доступний для будь-якої версії MS Excel і полягає в тому, що ми винесемо кнопку прямо на наш робочий лист як графічний об'єкт. Для цього вам потрібно:

  • У MS Excel 2003 і старшепереходьте до меню "Вид", вибираєте "Панель інструментів"та натискаєте кнопку «Форми».
  • У MS Excel 2007 і новішівам потрібно на вкладці «Розробник»відкрити меню, що випадає "Вставити"та вибрати об'єкт «Кнопка».

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

Як створити функції користувача на VBA

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

Наприклад, для створення функції податку на додану вартість, він же ПДВ, нам потрібно відкрити наш редактор VBA і додати новий модуль, вибрати в меню «Insert»пункт «Module»та ввести туди текст для нашої функції: Слід зазначити, що відмінність функції від макросу це заголовок Functionзамінило Subта у наявності заповнений список аргументів, у нашому прикладі це Summa. Після того, як наш код буде введений, він буде доступний у стандартному вікні Майстра функцій, що знаходиться в меню Формули, пункт "Вставити функцію".
І вибираємо категорію «Визначені користувачем»у якій і відображатиметься наша написана функція "NDS".
Після вибору нашої функції можна встановити курсор на комірку з аргументом, у якій утримуватиметься та сума, на яку ми вважаємо ПДВ, все відбувається, як і зі звичайною функцією.
А на цьому все в мене! Я дуже сподіваюся щостаття про те, як створити макрос в Excel вам була зрозумілою та корисною. Буду дуже вдячний за залишені коментарі, тому що це показник читання та надихає на написання нових статей! Діліться з друзями прочитаним та ставте лайк!

Макрос в «Ексель» - маленька програма (скрипт) написана на мові VBA (Visual Basic for Applications) різновиду мови Basic (Бейсік).

У макросах, зазвичай, прописують послідовність дій із даними у таблиці Excel.

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

Як створити простий макрос

Створювати макроси в Excel можна двома способами:


  • За допомогою опції "Запис макросу";
  • Написати макрос мовою VBA в редакторі макросів і застосувати його до документа.

Найпростіший спосіб "Запис макросу", його і розглянемо.

Для початку необхідно увімкнути вкладку «Розробник», якщо вона не увімкнена.

Необхідно клацнути правою кнопкою миші на панелі інструментів, вибрати "налаштування стрічки", в налаштуваннях стрічки поставити галочку навпроти панелі "Розробник" і натиснути "ОК".

Після того, як панель розробника включили можна починати запис макросу.

Щоб записати макрос, слід:

— за збереження в «Ця книга» макрос працюватиме лише у поточному документі;

— при збереженні в «Особиста книга» макрос працюватиме у всіх документах на комп'ютері.

  1. Можна додати опис макросу, він допоможе Вам згадати, які дії робить макрос.
  2. Натиснути "Ок".
  3. Якщо ви не вказали клавіші, запис почнеться відразу після натискання кнопки «Ок».
  4. Коли записується, Ви повинні здійснювати необхідну послідовність дій.
  5. Коли закінчите, натисніть кнопку зупинити запис.

Записані макроси відображаються у книзі макросів.

Щоб їх подивитися, слід натиснути кнопку «макроси». У вікні з'явиться список макросів. Виберіть потрібний макрос та натисніть «Виконати».

Макроси, що знаходяться в книзі, можна редагувати. Для цього потрібно вибрати макрос та натиснути кнопку «Змінити». При натисканні на кнопку "Змінити" відкриється редактор макросів із записаним на мові VBA скриптом.

Спробуємо відредагувати макрос.

Наприклад, продовжити його ще кілька осередків.

Після коригування закриваємо редактор і пробуємо знову запустити макрос.

Тема 2.3. Програмні засоби презентацій та основи офісного програмування

Тема 2.4. Системи управління базами даних та експертні системи

2.4.11. Навчальна база даних із головною кнопковою формою"Training_students" - Завантажити

Програмування VBA та макроси

2.3. Програмні засоби презентацій та основи офісного програмування

2.3.7. Основи офісного програмування

Візуальна мова програмування Бейсик для програм: Visual Basic for Applications (VBA)

VBA – це підмножина візуальної мови програмування Visual Basic (VB), яка включає майже всі засоби створення програм VB.

VBA відрізняється від мови програмування VB тим, що VBA призначена для безпосередньої роботи з об'єктами Office, в ній не можна створювати проект незалежно від програм Office. Таким чином, VBA мовою програмування є VB, а інструментальне середовище програмування реалізована у вигляді редактора VB, який може активізуватися з будь-якої програми MS Office.

Наприклад, для того, щоб відкрити редактор VBA з програми PowerPoint, необхідно виконати команду Сервіс / Макрос / Редактор VBA. Повернутися з редактора до програми можна, вибравши Microsoft PowerPoint у меню Вигляд або комбінацією клавіш Alt + F11.

За допомогою вбудованого в редактор VBA набору елементів управління і редактора форм користувач може створити інтерфейс для розроблюваного проекту з екранною формою. Елементи керування є об'єктами, а для кожного об'єкта визначено ряд можливих подій (наприклад, клацання або подвійне клацання миші, натискання клавіші, перетягування об'єкта тощо).

Кожна подія проявляється у певних діях програми (відгуки, реакції). Форма користувача дозволяє створювати вікна діалогу додатків. Мова програмування VBA служить для написання коду програми, наприклад, для створення функцій користувача в Excel.

Той факт, що система програмування VBA призначена для роботи з об'єктами Office, дозволяє ефективно застосовувати її для автоматизації діяльності, пов'язаної з розробкою різних типівдокументів.

Розглянемо алгоритм створення функцій користувача в VBA:

1. Викликати вікно редактора коду VBA, виконавши команду Сервіс/Макрос/Редактор Visual Basic або натиснути Alt+F11.

2. Виконати пункт меню редактора Insert/Module (Вставка/Модуля).

3. Далі виконати Insert/Procedure (Вставка/Процедура). У діалоговому вікні Add Procedure, що відкрилося, ввести ім'я функції (наприклад, СУММА5) і встановити перемикачі: Type (тип) – у положення Function (функція); Scope (Область визначення) - у положення Public (Загальна) і натисніть кнопку ОК.


Рис. 1.

4. У вікні редактора для програмування VBA з'явиться заготівля функції: заголовок – Public Function СУММА5() та закінчення – End Function, між якими треба помістити код тіла функції.


Рис. 2.

5. Далі вводимо список параметрів функції, наприклад, у дужках вказуємо (x, y, z, i, j), тип даних (для точних розрахунків) і тип значення, що повертається функцією (в даному прикладіне будемо вводити). Крім того, вводимо тіло функції, наприклад, СУМА5 = x + y + z + i + j. У результаті отримаємо наступний текст програми:

Public Function СУМА5(x, y, z, i, j)
СУМА5 = x + y + z + i + j
End Function

6. Повертаємося у вікно програми Excel, в якому, наприклад, нам необхідно виконати підсумовування п'яти значень.

7. Виконуємо "Вставка/Функція" і у вікні майстра функцій вибираємо категорію "Визначені користувачем", а у вікні "Виберіть функцію" виділяємо СУММА5 і клацаємо ОК.



Рис. 3.



Рис. 4.

Макроси

Створення макросу

Створимо макрос для автоматичного підсумовування двох чисел у осередках A1, B1 та розміщення результату в осередку C1, а також заливання осередку C1 бірюзовим кольором.

Алгоритм створення макросу для поставленого завдання:

1. Виберіть Сервіс/Макрос, Почати запис.

2. У полі Ім'я макросу введіть ім'я макросу. Першим символом імені макросу має бути буква. В імені макросу не допускаються прогалини; як роздільники слів можна використовувати знаки підкреслення.

3. Щоб запустити макрос за допомогою клавіш, введіть літеру в полі Сполучення клавіш. Допускається використання поєднань CTRL+ літера (для малих літер) або CTRL+SHIFT+ літера (для великих літер), де літера - будь-яка літерна клавіша на клавіатурі. Не вибирайте стандартне сполучення клавіш, оскільки обране сполучення клавіш пригнічує стандартні клавіші. Microsoft Excelна той час із цією книгою.

4. У полі "Зберегти" виберіть книгу, в якій потрібно зберегти макрос. Збережіть макрос у «Ця книга». Для створення короткого описумакросу, введіть необхідний тексту полі Опис. На скріншоті наведено приклад заповнення вікна діалогу «Запис макросу»


Рис. 5.

5. Натисніть кнопку OK.

6. Виконайте макрокоманди, які потрібно записати.


Рис. 6.

7. Натисніть кнопку Зупинити запис на панелі інструментів «Ос» (Зупинити запис) або Сервіс / Макрос / Зупинити макрос.

Після закінчення запису макросу він з'являється у списку макросів під своїм ім'ям.

Редактор VBA автоматично записав послідовність макрокоманд або програму виконаних дій (Рис. 7.).



Рис. 7.

Для виклику макросу необхідно виконати команду Сервіс/Макрос/Макроси. Після цього в діалоговому вікні зі списком макросів його можна знайти на ім'я і натиснути кнопку Виконати.

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

Макрос можна запустити за допомогою кнопки на вбудованій панелі інструментів, для цього необхідно виконати:

  1. Виберіть пункт Налаштування в меню Сервіс.
  2. У діалоговому вікні Настройка вибрати вкладку Команди і вибрати параметр Макроси у списку Категорії, у списку Команди виділити «Кнопка, що настроюється».
  3. Зі списку Команди перетягнути за допомогою миші кнопку на панель інструментів, що настроюється.
  4. Клацнути цю кнопку правою кнопкою миші та вибрати команду Призначити макрос у контекстному меню.
  5. Введіть ім'я макросу в полі Ім'я макросу.

Призначення області графічного об'єкта для запуску макросу:

  1. Створіть графічний об'єкт.
  2. До виділеного графічного об'єкта застосуйте контекстне меню.
  3. У контекстному меню виберіть команду Призначити макрос.
  4. У вікні діалогу "Призначити макрос об'єкту", введіть назву макросу в полі Ім'я макросу, потім натисніть кнопку OK.

Редагування макросу здійснюється редактором VBA, для цього необхідно виконати таке:

  1. Вибрати команду Сервіс/Макрос/Макроси.
  2. Вибрати ім'я макросу, який потрібно змінити, у списку Ім'я.
  3. Натиснути кнопку Змінити, відкриється вікно Visual Basic, в якому можливе редагування команд вибраного макросу, записаних на мові Visual Basic.


Видалення макросу:

  1. У меню Сервіс виберіть пункт Макрос, а потім команду Макроси.
  2. У списку макросів поточної робочої книги необхідно вибрати макрос, який передбачається видалити і натиснути кнопку Видалити.

Перейменування макросу

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

Можливості Excel не обмежуються набором вбудованих функцій. За допомогою написання макросів можна створювати власні функції для виконання нестандартних завдань в Excel.

Наприклад, самостійно написаний макрос можна прив'язати до іконки та вивести на Стрічку меню. Або Ви можете створити функцію користувача (UDF) і використовувати її так само, як і інші вбудовані функції Excel.

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

Налаштування дозволу для використання макросів в Excel

В Excel передбачено вбудований захист від вірусів, які можуть проникнути в комп'ютер через макроси. Якщо хочете запустити в книзі Excel макрос, переконайтеся, що параметри безпеки правильно налаштовані.

Редактор Visual Basic

Запис макросів

Інструментарій Excel для запису макросів - це відмінний спосіб ефективно виконувати прості завдання, що повторюються. Також його можна використовувати як допоміжний засіб при написанні складніших макросів.

Підручник Excel VBA

Для тих, хто тільки починає освоювати мову програмування Excel VBA, пропонуємо невеликий вступний курс Visual Basic for Applications.

Спочатку трохи про термінологію.

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

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

Записаний макрос можна буде запускати необмежену кількість разів, і Excel повторить усі записані кроки. Це означає, що навіть якщо ви нічого не знаєте про VBA, ви можете автоматизувати деякі завдання, просто записавши свої кроки, а потім повторно використовувати їх пізніше.

Тепер давайте поринемо і подивимося, як записати макрос у Excel.

Відображення вкладки "Розробник" у стрічці меню

Перед тим, як записувати макрос, потрібно додати на стрічку меню Excel вкладку "Розробник". Для цього виконайте такі кроки:

В результаті на стрічці меню з'явиться вкладка "Розробник"

Запис макросу в Excel

Тепер давайте запишемо дуже простий макрос, який вибирає комірку і вводить до неї текст, наприклад "Excel".

Ось кроки для запису такого макросу:

Вітаємо! Ви тільки що записали свій перший макрос в Excel. Хоча макрос не робить нічого корисного, але він допоможе нам зрозуміти, як працює макрорекордер в Excel.

Тепер давайте розглянемо код, який записав макрорекодер. Виконайте такі дії, щоб відкрити редактор коду:


Ви побачите, що як тільки ви натиснете кнопку "Виконати", текст "Excel" буде вставлений в комірку A2 і вибрано комірку A3. Це відбувається за мілісекунди. Але насправді макрос послідовно здійснив записані дії.

Примітка. Ви також можете запустити макрос за допомогою клавіш Ctrl + Shift + N (утримуйте клавіші Ctrl і Shift, а потім натисніть клавішу N). Це той самий ярлик, який ми призначили макросу під час його запису.

Що записує макрос?

Тепер перейдемо до редактора коду і подивимося, що в нас вийшло.

Ось кроки з відкриття редактора VB в Excel:

  1. У групі "Код" натисніть кнопку "Visual Basic".

Ви також можете використовувати комбінацію клавіш Alt+F11 і перейти до редактора коду VBA.

  • Панель меню: містить команди, які можна використовувати під час роботи з редактором VB.
  • Панель інструментів- схожа на панель швидкого доступув Excel. Ви можете додати до неї додаткові інструменти, якими ви часто користуєтеся.
  • Вікно проектів (Project Explorer)- тут Excel перераховує всі книги та всі об'єкти в кожній книзі. Наприклад, якщо у нас є книга з 3 робочими листами, вона з'явиться у Project Explorer. Тут є кілька додаткових об'єктів, таких як модулі, форми користувача і модулі класів.
  • Вікно коду- Власне сам код VBA розміщується в цьому вікні. Для кожного об'єкта, зазначеного у провіднику проекту, є вікно коду, наприклад, робочі аркуші, книги, модулі тощо. У цьому уроці ми побачимо, що записаний макрос знаходиться у вікні коду модуля.
  • Вікно властивостей- Ви можете побачити властивості кожного об'єкта у цьому вікні. Я часто використовую це вікно для позначення об'єктів або зміни їх властивостей.
  • Immediate Window(Вікно попереднього перегляду) - На початковому етапі воно вам не знадобиться. Це корисно, коли ви хочете протестувати кроки або під час налагодження. За замовчуванням він не відображається, і ви можете його відобразити, клацнувши вкладку «View» і вибравши опцію «Immediate Window».

Коли ми записали макрос "ВведенняТексту", у редакторі VB сталися такі речі:

  • Було додано новий модуль.
  • Макрос був записаний з ім'ям, яке ми вказали - "ВведенняТексту"
  • У вікні коду додано нову процедуру.

Тому, якщо ви двічі клацніть на модулі (у нашому випадку модуль 1), з'явиться вікно коду, як показано нижче.

Ось код, записаний макрорекодером:

Sub ВведенняТексту () " "ВведенняТексту Макрос " " Range("A2").Select ActiveCell.FormulaR1C1 = "Excel" Range("A3").Select End Sub

У VBA, будь-який рядок, який слідує за " (знак апострофа) не виконується. Це коментар, який призначений тільки для інформаційних цілей. Якщо ви видалите перші п'ять рядків цього коду, макрос, як і раніше, буде працювати.

Тепер давайте пробіжимо по кожному рядку коду та опишемо що й навіщо.

Код починається з Sub, за яким слідує ім'я макросу та порожні круглі дужки. Sub – скорочення для підпрограми. Кожна підпрограма (також звана процедурою) у VBA починається з Subі закінчується End Sub.

  • Range("A2").Select - цей рядок вибирає комірку A2.
  • ActiveCell.FormulaR1C1 = "Excel" - цей рядок вводить текст "Excel" в активному осередку. Оскільки ми вибрали комірку A2 як перший крок, вона стає нашою активною коміркою.
  • Range("A3").Select - вибір осередку A3. Це відбувається, коли ми натискаємо клавішу Enter після введення тексту, результатом якого є вибір комірки A3.

Сподіваюся, що у вас є деяке базове розуміння, як записувати макрос в Excel.

Звертаємо увагу, що код, записаний через макрорекордер, як правило, не є ефективним та оптимізованим кодом. Макрорекордер часто додає непотрібні додаткові дії. Але це не означає, що не потрібно скористатися макрорекодером. Для тих, хто тільки вивчає VBA, макрорекордер може бути відмінним способомпроаналізувати та зрозуміти як усе працює у VBA.

Абсолютний та відносний запис макросу

Ви вже знаєте про абсолютні та відносні посилання в Excel? Якщо ви використовуєте абсолютне посилання для запису макросу, код VBA завжди буде посилатися на ті ж осередки, які ви використовували. Наприклад, якщо ви виберете комірку A2 і введете текст "Excel", то кожного разу - незалежно від того, де ви знаходитесь на аркуші і незалежно від того, яка комірка обрана, ваш код вводитиме текст "Excel" в комірку A2.

Якщо ви використовуєте параметр відносного посилання для запису макросу, VBA не буде прив'язуватись до конкретної адреси комірки. У цьому випадку програма "рухатиметься" щодо активного осередку. Наприклад, припустимо, що ви вже вибрали комірку A1 і ви починаєте запис макросу в режимі відносного посилання. Тепер ви вибираєте комірку A2, вводите текст Excelта натисніть клавішу Enter. Тепер, якщо ви запустите цей макрос, він не повернеться в комірку A2, натомість він переміщатиметься щодо активної комірки. Наприклад, якщо вибрано комірку B3, вона переміститься на B4, запише текст "Excel" і потім перейде до комірки K5.

Тепер давайте запишемо макрос у режимі відносних посилань:

Макрос у режимі відносних посилань буде збережено.

Тепер зробіть таке.

  1. Виберіть будь-яку комірку (крім A1).
  2. Перейдіть на вкладку "Розробник".
  3. У групі "Код" натисніть кнопку "Макроси".
  4. У діалоговому вікні "Макрос" натисніть на збережений макрос "Відносні Посилання".
  5. Натисніть кнопку "Виконати".

Як ви помітите, макрос записав текст "Excel" не в комірки A2. Це сталося, тому що ви записали макрос у режимі відносного посилання. Таким чином, курсор переміщається щодо активного осередку. Наприклад, якщо ви зробите це, коли вибрано осередок B3, він увійде в текст Excel - осередок B4 і в кінцевому підсумку вибере осередок B5.

Ось код, який записав макрорекодер:

Зверніть увагу, що в коді немає посилань на осередки B3 або B4. Макрос використовує Activecell для посилання на поточну комірку та зміщення щодо цієї комірки.

Не звертайте увагу на частину коду Range(A1). Це один із тих випадків, коли макрорекодер додає непотрібний код, який не має жодної мети і може бути вилучений. Без нього код працюватиме чудово.

Що не можна зробити за допомогою макрорекодера?

Макро-рекордер відмінно підходить для вас в Excel і записує ваші точні кроки, але може вам не підійти, коли вам потрібно зробити щось більше.

  • Ви не можете виконати код без вибору об'єкта. Наприклад, якщо ви хочете, щоб макрос перейшов на наступний робочий лист і виділив всі заповнені осередки в стовпці A, не виходячи з робочої таблиці, макрорекодер не зможе цього зробити. У таких випадках вам потрібно вручну редагувати код.
  • Ви не можете створити функцію користувача за допомогою макрорекордера. За допомогою VBA ви можете створювати функції користувача, які можна використовувати на робочому аркуші як звичайні функції.
  • Ви не можете створювати цикли за допомогою макрорекордера. Але можете записати одну дію, а цикл додати вручну до редактора коду.
  • Ви не можете аналізувати умови: ви можете перевірити умови коду за допомогою макрорекордера. Якщо ви пишете код VBA вручну, ви можете використовувати оператори IF Then Else для аналізу умови та запуску коду, якщо true (або інший код, якщо false).

Розширення файлів Excel, які містять макроси

Коли ви записуєте макрос або вручну записуєте код VBA в Excel, необхідно зберегти файл з розширенням файлу з підтримкою макросів (.xlsm).

До Excel 2007 було достатньо одного формату файлу - .xls. Але з 2007 року. xlsx був представлений як стандартне розширення файлу. Файли, збережені як.xlsx, не можуть містити макрос. Тому, якщо у вас є файл з розширенням.

Якщо ви оберете "Ні", Excel зберегти файл у форматі з підтримкою макросів. Але якщо ви натиснете "Так", Excel автоматично видаляє весь код з вашої книги та збереже файл як книгу у форматі .xlsx. Тому, якщо у вашій книзі є макрос, потрібно зберегти його у форматі.xlsm, щоб зберегти цей макрос.

© 2022 androidas.ru - Все про Android