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

Способи запису макросів

Макрос можна записати двома способами:

  • автоматично;
  • вручну.

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

Ручна зйомка макросів, навпаки, вимагає знань програмування, так як код набирається вручну з клавіатури. Але, грамотно написаний таким чином код, може значно прискорити виконання процесів.

Автоматичний запис макросів

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

Включення макросів в Microsoft Excel

Далі, переходимо у вкладку «Розробник». Кількома по кнопці «Запис макросу», яка розташована на стрічці в блоці інструментів «Код».

Включення запису макросу в Microsoft Excel

Відкривається вікно налаштування запису макросу. Тут можна вказати будь-яке ім'я макросу, якщо встановлене за замовчуванням вас не влаштовує. Головне, щоб ім'я це починалося з букви, а не з цифри. Також, в назві не повинно бути пробілів. Ми залишили назву за замовчуванням - «Макрос1».

Тут же, при бажанні, можна встановити поєднання клавіш, при натисканні на які макрос буде запускатися. Першою клавішею обов'язково повинна бути клавіша Ctrl, а другу клавішу користувач встановлює самостійно. Наприклад, ми, як приклад, встановили клавішу М.

Далі, потрібно визначити, де буде зберігатися макрос. За замовчуванням, він буде зберігатися в цій же книзі (фото), але при бажанні можна встановити зберігання в новій книзі, або в окремій книзі макросів. Ми залишимо значення за замовчуванням.

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

Коли всі налаштування виконані, тиснемо на кнопку «OK».

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

Після цього, всі ваші дії в даній книзі (фото) Excel будуть записуватися в макрос до тих пір, поки ви самі не зупините запис.

Для прикладу, запишемо найпростіше арифметичне дію: додавання вмісту трьох осередків (= C4 + C5 + C6).

Формула в Microsoft Excel

Після цього, тиснемо на кнопку «Зупинити запис». Ця кнопка перетворилася з кнопки «Запис макросу», після включення запису.

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

запуск макросу

Для того, щоб перевірити, як працює записаний макрос, натискаємо в тому ж блоці інструментів «Код» по кнопці «Макрос», або тиснемо клавіші Alt + F8.

Перехід до запуску макросу в Microsoft Excel

Після цього, відкривається вікно зі списком записаних макросів. Шукаємо макрос, який ми записали, виділяємо його, і тиснемо на кнопку «Виконати».

Вибір макросу в Microsoft Excel

Можна вчинити ще простіше, і не викликати навіть вікно вибору макросів. Ми ж пам'ятаємо, що записали поєднання «гарячих клавіш» для швидкого виклику макросу. У нашому випадку, це Ctrl + М. Набираємо цю комбінацію на клавіатурі, після чого макрос запускається.

Як бачимо, макрос виконав в точності всі ті дії, які були записані раніше.

Макрос виконаний в Microsoft Excel

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

Для того, щоб відредагувати макрос, знову тиснемо на кнопку «Макрос». У вікні вибираємо потрібний макрос, і натискаємо на кнопку «Змінити».

Перехід до зміни макросу в Microsoft Excel

Відкривається Microsoft Visual Basic (VBE) - середовище, де відбувається редагування макросів.

Microsoft Visual Basic в Microsoft Excel

Запис кожного макросу починається з команди Sub, а закінчується командою End Sub. Відразу ж після команди Sub вказується ім'я макросу. Оператор «Range (« ... »). Select» вказує вибір осередку. Наприклад, при команді «Range (« C4 »). Select» вибирається осередок C4. Оператор «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 »».

Зміна макросу в Microsoft Excel

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

У разі, якщо макрос занадто великий, його виконання може зайняти значний час. Але, шляхом внесення ручного зміни в код, ми можемо прискорити процес. Додаємо команду «Application.ScreenUpdating = False». Вона дозволить зберегти обчислювальні потужності, а значить прискорити роботу. Це досягається шляхом відмови від оновлення екрану під час виконання обчислювальних дій. Щоб відновити оновлення після виконання макросу, в його кінці пишемо команду «Application.ScreenUpdating = True»

Додамо також команду «Application.Calculation = xlCalculationManual» спочатку коду, а в кінці коду дописуємо «Application.Calculation = xlCalculationAutomatic». Цим ми спочатку макросу відключаємо автоматичний перерахунок результату після кожної зміни осередків, а в кінці макросу - включаємо. Таким чином, Excel підрахує результат тільки один раз, а не буде його постійно перераховувати, ніж заощадить час.

Зміна коду в Microsoft Visual Basic в Microsoft Excel

Написання коду макросу з нуля

Просунуті користувачі можуть виконувати не тільки редагування і оптимізацію записаних макросів, а й записувати код макросів з нуля. Для того, щоб приступити до цього, потрібно натиснути на кнопку «Visual Basic», яка розташована в самому початку стрічки розробника.

Перехід до ручного створення макросу в Microsoft Excel

Після цього, відкривається знайоме нам вікно редактора VBE.

Вікно редактора VBE в Microsoft Excel

Програміст пише там код макросу вручну.

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