Зміст

Макроси в Microsoft Excel дозволяють значно прискорити роботу з документами в цьому табличному редакторі. Ця можливість досягається шляхом автоматизації повторюваних дій, записаних в спеціальний код. Давайте розберемо, як створити макроси в програмі і як їх можна відредагувати.
Способи запису макросів в Excel
Макрос записується двома способами: автоматично та вручну. Скориставшись першим варіантом, ви просто записуєте певні дії в Microsoft Excel, які виконуєте в даний момент часу. Потім можна буде відтворити цей запис. Такий метод дуже легкий і не вимагає знання коду, але застосування його на практиці досить обмежена. Ручна запис, навпаки, вимагає знань програмування, так як код набирається вручну з клавіатури. Однак грамотно написаний таким чином код може значно прискорити виконання процесів.
Варіант 1: Автоматичний запис макросів
Перш ніж почати автоматичну запис макросів, потрібно включити їх в програмі Microsoft Excel. Для цього скористайтеся нашим окремим матеріалом.
Детальніше: увімкнення та вимкнення макросів у Microsoft Excel
Коли все готово, приступаємо до запису.
- Перейдіть на вкладку»Розробник" . Клацніть по кнопці " Запис макросу» , яка розташована на стрічці в блоці інструментів " Код» .
- Відкривається вікно налаштування запису макросу. Тут можна вказати будь-яке ім'я для нього, якщо встановлене за замовчуванням вас не влаштовує. Головне, щоб ім'я це починалося з літери, а не з цифри, а також в назві не повинно бути пробілів. Ми залишили назву за замовчуванням – «Макрос1» .
- Тут же при бажанні можна встановити поєднання клавіш, при натисканні на які макрос буде запускатися. Першою клавішею обов'язково повинна бути Ctrl , а другу користувач встановлює самостійно. Ми як приклад встановили клавішу М .
- Далі слід визначити, де буде зберігатися макрос. За замовчуванням він розташований в цій же книзі (файлі), але при бажанні можна встановити зберігання в новій книзі або в окремій книзі макросів. Ми залишимо значення за замовчуванням.
- В самому нижньому полі можна залишити будь-який відповідний по контексту опис макросу, але це робити не обов'язково. Коли всі налаштування виконані, тиснемо на кнопку «OK» .
- Після цього всі ваші дії в даній книзі (файлі) Excel будуть записуватися в макрос до тих пір, поки ви самі не зупините запис.
- Для прикладу запишемо найпростіше арифметичне дію: додавання вмісту трьох осередків (=C4+C5+C6).
- Коли алгоритм був виконаний, клацаємо на кнопку " зупинити запис» . Ця кнопка перетворилася з кнопки " Запис макросу» після включення запису.




Запуск макросу
Для перевірки того, як працює записаний макрос, виконаємо кілька простих дій.
- Натискаємо в тому ж блоці інструментів " Код» по кнопці «макроси» або тиснемо поєднання клавіш Alt + F8 .
- Після цього відкривається вікно зі списком записаних макросів. Шукаємо макрос, який ми записали, виділяємо його і натискаємо на кнопку " виконати» .
- Можна зробити ще простіше і не викликати навіть вікно вибору макросів, так як на першому етапі ми задали поєднання клавіш для швидкого виклику макросу. У нашому випадку це Ctrl + М . Тиснемо цю комбінацію на клавіатурі, після чого він запускається.
- Як бачимо, він виконав в точності всі ті дії, які були записані раніше.


Редагування макросу
Природно, за бажанням Ви можете налаштувати створений макрос, щоб завжди підтримувати його в актуальному стані та виправляти деякі неточності, допущені під час процесу запису.
- Знову клацаємо на кнопку «макроси» . У вікні вибираємо потрібний і натискаємо на кнопку " змінити» .
- Відкривається &171;Microsoft Visual Basic&187; (VBE) – середовище, де відбувається їх редагування.
- Запис кожного макросу починається з команди
Sub
, а закінчується командоюEnd Sub
. Відразу ж післяSub
вказується ім'я макросу. ОператорRange("…").Select
вказує вибір комірки. Наприклад, при команді «Range(&171;C4&187;).Select» вибирається клітинка &171;C4&187; . ОператорActiveCell.FormulaR1C1
використовується для запису дій у формулах та інших розрахунків. - Спробуємо трохи змінити макрос, дописавши вираз:
Range("C3").Select
ActiveCell.FormulaR1C1 = "11" - Вираз
ActiveCell.FormulaR1C1 = "=R[-3]C+R[-2]C+R[-1]C"
замінимо наActiveCell.FormulaR1C1 = "= R[-4]C+R[-3]C+R[-2]C+R[-1]C"
. - Закриваємо редактор і запускаємо макрос. Як бачимо, внаслідок введених нами змін була додана додаткова комірка з даними. Вона також була включена в розрахунок загальної суми.
- У разі якщо макрос занадто великий, його виконання може зайняти значний час, але внесенням ручного зміни в код ми можемо прискорити процес. Додаємо команду
Application.ScreenUpdating = False
. Вона дозволить зберегти обчислювальні потужності, а значить, прискорити роботу. Це досягається шляхом відмови від оновлення екрану під час виконання обчислювальних дій. Щоб відновити оновлення після виконання макросу, в його кінці пишемо командуApplication.ScreenUpdating = True
. - Додамо також команду
Application.Calculation = xlCalculationManual
в початок коду, а в його кінець дописуємоApplication.Calculation = xlCalculationAutomatic
. Цим ми спочатку відключаємо автоматичний перерахунок результату після кожної зміни осередків, а в кінці макросу – включаємо. Таким чином, Excel підрахує результат тільки один раз, а не буде його постійно перераховувати, чим заощадить час. - Щоб приступити до цього, потрібно натиснути на кнопку «Visual Basic» , яка розташована на самому початку стрічки розробника.
- Відкриється вікно редактора VBE, яке вже було продемонстровано в попередньому варіанті.
- Програміст пише там код макросу вручну.



Варіант 2: написання коду макросу з нуля
Просунуті користувачі можуть виконувати не тільки редагування та оптимізацію записаних макросів, але і записувати їх код з нуля.


Як бачимо, макроси в Microsoft Excel можуть значно спростити виконання рутинних і одноманітних процесів. Проте в більшості випадків для цього більше підходять макроси, код яких написаний вручну, а не автоматично записані дії. Крім того, його код можна оптимізувати через редактор VBE для прискорення процесу виконання завдання.