Почему я не делаю макросы и почему вам от этого лучше
Меня регулярно спрашивают, будет ли в файле кнопка, которая «сама всё сделает». Кнопка будет, макроса за ней — нет. Это не принципиальность, а следствие четырёх конкретных проблем, с которыми сталкивается заказчик, а не разработчик.

Почта не пропускает
Файл XLSM с макросами Gmail блокирует на входе. Outlook показывает предупреждение и часто режет вложение на корпоративном сервере. Получается бессмысленная ситуация: вы заказали файл, чтобы отправлять сметы клиентам, а отправить его не можете. Люди начинают паковать в архив с паролем, и на этом месте половина клиентов просто не открывает.
Каждое открытие — жёлтая полоса
Excel открывает книгу с макросами в защищённом режиме и показывает полосу «Включить содержимое». Пока не нажали — формулы из макросов не работают, файл выглядит сломанным. Ваш кладовщик нажмёт, менеджер — нет, а бухгалтер вообще вызовет системного администратора. Каждый новый компьютер — это снова объяснение, почему файл «просит разрешения, как вирус».
Во многих компаниях макросы запрещены политикой домена централизованно, и локально включить их невозможно вообще. Это не редкость, это норма для любого предприятия с нормальным ИТ.
В Google Таблицах этого нет
Макрос VBA не переносится в Таблицы никак. Если через год вы захотите, чтобы бригада вносила данные с телефонов, файл придётся переписывать с нуля. Формульный файл переносится по большей части без переделки.
Никто, кроме автора, не починит
Формулу видно: встали на ячейку и читаете. Макрос — это код в отдельном окне, до которого надо знать, как добраться. Когда через два года изменится правило расчёта, вы либо ищете того самого разработчика, либо платите новому за разбор чужого кода. С формулами любой знакомый, уверенно работающий в Excel, разберётся за час.
Это та же причина, по которой я отдаю вместе с файлом описание: какие ячейки заполняются, какие считаются, где лежат нормы. Файл должен пережить своего автора.
Что используется вместо
Почти всё, ради чего обычно пишут макросы, делается штатными средствами:
- Кнопка «обновить» — Power Query. Забирает выгрузку из банка или 1С,
чистит и кладёт в таблицу. Без кода.
- Выпадающие списки и зависимые списки — проверка данных плюс именованные диапазоны.
- Подсветка проблем — условное форматирование: отрицательное количество красным,
просроченное — жёлтым.
- Сведение за период — сводная таблица, обновляется двумя кликами.
- Печать набора документов — области печати плюс настроенные разрывы страниц.
- Поиск в справочнике — `ВПР`, а лучше
`ИНДЕКС` с `ПОИСКПОЗ`, которые не ломаются при вставке столбца.
Когда макрос всё же нужен
Честно: бывает. Если надо ежедневно генерировать двести отдельных файлов из одного шаблона, рассылать их почтой или тянуть данные из программы, у которой нет выгрузки, — формулами это не делается. Но тогда и задача уже не «расчётная таблица», а маленькая программа, и считать её надо иначе.
В таком случае я говорю прямо, что это за пределами того, что я делаю, и что дешевле будет не Excel, а отдельный скрипт. Продавать вам файл, который не решает задачу, смысла нет.
*Опубликовано на https://listok.com.ua/ru/blog/chomu-bez-makrosiv.html*