Чому я не роблю макроси і чому вам від цього краще
Мене регулярно питають, чи буде в файлі кнопка, яка «сама все зробить». Кнопка буде, макроса за нею - ні. Це не принциповість, а наслідок чотирьох конкретних проблем, з якими стикається замовник, а не розробник.

Пошта не пропускає
Файл XLSM з макросами Gmail блокує на вході. Outlook показує попередження і часто ріже вкладення на корпоративному сервері. Виходить безглузда ситуація: ви замовили файл, щоб надсилати кошториси клієнтам, а надіслати його не можете. Люди починають пакувати в архів з паролем, і на цьому місці половина клієнтів просто не відкриває.
Кожне відкриття - жовта смуга
Excel відкриває книгу з макросами у захищеному режимі і показує смугу «Увімкнути вміст». Поки не натиснули - формули з макросів не працюють, файл виглядає зламаним. Ваш комірник натисне, менеджер - ні, а бухгалтер взагалі викличе системного адміністратора. Кожен новий компʼютер - це знову пояснення, чому файл «просить дозволу, як вірус».
У багатьох компаніях макроси заборонені політикою домену централізовано, і локально їх увімкнути неможливо взагалі. Це не рідкість, це норма для будь-якого підприємства з нормальним ІТ.
У Google Таблицях цього немає
Макрос VBA не переноситься в Таблиці ніяк. Якщо через рік ви захочете, щоб бригада вносила дані з телефонів, файл доведеться переписувати з нуля. Формульний файл переноситься здебільшого без переробки.
Ніхто, крім автора, не полагодить
Формулу видно: стали на клітинку і читаєте. Макрос - це код у окремому вікні, до якого треба знати, як дістатися. Коли через два роки зміниться правило розрахунку, ви або шукаєте того самого розробника, або платите новому за розбір чужого коду. З формулами будь-який знайомий, що впевнено працює в Excel, розбереться за годину.
Це та сама причина, чому я віддаю разом з файлом опис: які клітинки заповнюються, які рахуються, де лежать норми. Файл має пережити свого автора.
Що використовується замість
Майже все, заради чого зазвичай пишуть макроси, робиться штатними засобами:
- Кнопка «оновити» - Power Query. Забирає вивантаження з банку чи 1С,
чистить і кладе в таблицю. Без коду.
- Випадні списки і залежні списки - перевірка даних плюс іменовані діапазони.
- Підсвічування проблем - умовне форматування: відʼємна кількість червоним,
прострочене - жовтим.
- Зведення за період - зведена таблиця, оновлюється двома кліками.
- Друк набору документів - області друку плюс налаштовані розриви сторінок.
- Пошук у довіднику - `ВПР`, а краще
`ІНДЕКС` з `ПОШУКПОЗ`, які не ламаються при вставці стовпця.
Коли макрос усе ж потрібен
Чесно: буває. Якщо треба щоденно генерувати двісті окремих файлів з одного шаблону, розсилати їх поштою або тягнути дані з програми, у якої немає вивантаження, - формулами це не робиться. Але тоді і задача вже не «розрахункова таблиця», а маленька програма, і рахувати її треба інакше.
У такому разі я кажу прямо, що це поза межами того, що я роблю, і що дешевше буде не Excel, а окремий скрипт. Продавати вам файл, який не вирішує задачу, сенсу немає.
*Опубліковано на https://listok.com.ua/blog/chomu-bez-makrosiv.html*