Автоматизация Excel: макросы VBA против ИИ

Опубликовано 22 августа 2026 г. · 19 мин чтения

Короткий ответ: ИИ выигрывает там, где логику надо придумать один раз, разобрать чужую формулу или собрать разовый отчёт - готовую конструкцию он выдаёт за минуты, даже если синтаксис ты никогда не учил. VBA держит оборону на ежедневных операциях внутри книги, которые должны жить кнопкой и запускаться без интернета. За последние пару лет эти два инструмента срослись: макрос под кнопку тебе всё чаще пишет модель, а ты его вставляешь и проверяешь.

Что такое макросы VBA и когда они сильнее?

VBA сидит внутри самой книги Excel, как моторчик под капотом. По Alt+F11 открывается редактор, туда ложится код, и дальше он делает с таблицей всё, что ты описал: обходит строки, красит ячейки по условию, собирает данные из десятка файлов на один лист, печатает пачку счетов по шаблону, раскидывает выгрузку по отдельным книгам для каждого филиала.

Главный козырь макроса - автономность. Он живёт в файле формата .xlsm, запускается кнопкой на листе или сочетанием клавиш, ничего не спрашивает у сети и не зависит от того, работает ли сегодня чей-то сервис. Отключи интернет, и он всё равно отработает. У коллеги на его компьютере запустится тоже, если тот разрешит макросы в Центре управления безопасностью. Написанный однажды, он повторяет одну и ту же последовательность хоть тысячу раз подряд, и на тысячном прогоне результат совпадёт с первым: ни усталости, ни съехавшей строки, ни лишнего пробела в имени клиента.

На объёме VBA обгоняет человека на порядки. Двести тысяч строк, на которых руками ты бы просидел два дня, макрос проезжает за время, пока закипает чайник. Плюс он умеет то, чего формула не умеет в принципе: открывать соседние файлы, сохранять их под новыми именами, отправлять письма через Outlook, дёргать печать, писать в лог, какие строки он тронул и когда.

Дорогой была цена входа. Чтобы собрать даже примитивный макрос, требовалось знать синтаксис, держать в голове объектную модель Excel (Range, Cells, Worksheets) и спокойно реагировать на Run-time error 1004, который вылезает по десятку разных причин. Для человека без опыта в разработке тут стояла глухая стена, и большинство предпринимателей о неё расшибались на первом же часе: разворачивались и делали всё руками, год за годом. Про то, где эта стена стоит в принципе и какие куски рутины обходятся дешевле всего, у меня есть отдельный текст - с каких задач начинать автоматизацию.

Есть контуры, где у VBA до сих пор нет альтернативы. Закрытая корпоративная сеть без выхода наружу, бухгалтерская книга, которая ходит между тремя отделами, реестр, куда сотрудник заходит с рабочего ноутбука без права ставить сторонний софт, - во всех этих случаях кнопка внутри файла остаётся единственным работающим вариантом.

Чем ИИ полезнее макросов в Excel?

Стену с ценой входа ИИ убирает целиком. Ты описываешь задачу обычными словами, а модель кладёт на стол либо готовую формулу, либо тот самый VBA-код, который остаётся скопировать в редактор. Синтаксис теперь дело машины - от тебя нужна внятная постановка задачи и проверка того, что вернулось в ответе.

Сильнее всего модель на разборе чужого. Кидаешь ей непонятную формулу на пол-экрана или доставшийся по наследству макрос, который в компании уже никто не рискует трогать, и просишь объяснить по шагам, что именно он делает с данными. Сам Excel так не умеет: он исполняет код молча и никогда не расскажет о себе ни строчки.

Дальше идут разовые задачи, те, что раньше висели как проект на полдня. Свести сводную по менеджерам, вычистить дубли по колонке email, разложить ФИО из одной колонки на три, привести кривые даты к нормальному формату - в диалоге это закрывается за пару реплик. Половина задач, под которые лет десять назад писали макрос, сегодня решается одной формулой: ФИЛЬТР, ПРОСМОТРX, УНИК, LET. Название нужной функции модель вспоминает быстрее, чем ты успеваешь открыть справочник.

У формулы есть предел. Когда данные разбросаны по десятку файлов, их надо тянуть из выгрузок и обновлять по расписанию, одной ячейкой уже ничего не сделаешь - здесь модель уводит тебя в сторону скрипта. Что такой скрипт реально закрывает в ежедневной рутине, я разбирал в материале про автоматизацию рутины на Python.

Качество ответа заметно зависит от того, какую модель ты дёргаешь. На длинном коде и на разборе чужих макросов разница между сервисами видна невооружённым глазом, и сравнение под конкретные задачи я собирал в тексте Claude или ChatGPT: что выбрать под задачу. Отдельный вопрос - стабильный доступ к сервису из России, про это есть пошаговый разбор способов.

Врать модель тоже умеет уверенно. Красивая формула рассыпается на первой пустой ячейке, на дате в текстовом формате или на региональных разделителях - твою таблицу она целиком не видела, ты ей её не показывал. Всё, что приходит в ответе, стоит считать черновиком под проверку.

VBA или ИИ: что выбрать под конкретную операцию?

Проще один раз разложить по операциям, где чья зона.

Операция с таблицейСтарый путь (VBA)Путь с ИИ
Сцепить ФИО из трёх колонокМакрос-цикл по строкамФормула =СЦЕП(A2;" ";B2;" ";C2) за 10 секунд
Подтянуть цену из второго файлаVLOOKUP или макросПРОСМОТРX, ИИ соберёт синтаксис по описанию
Убрать дубли по emailМакрос с DictionaryФормула УНИК / СЧЁТЕСЛИ, либо готовый скрипт от ИИ
Раскрасить просрочку краснымУсловное форматирование рукамиИИ даёт и правило форматирования, и VBA-вариант
Свести 12 файлов в один отчётОбязательно макросИИ пишет тот же макрос, но ты его не набираешь руками
Разобрать непонятную формулуНикак, только читать вручнуюСильная сторона ИИ - объясняет по шагам
Ежедневная кнопка «обновить»Родная зона VBAИИ напишет код, дальше это всё равно VBA
Рассылка счетов по шаблонуМакрос через OutlookИИ соберёт макрос, доступы настраиваешь ты
Разовая чистка выгрузки на 5000 строкМакрос ради одного разаФормула или Power Query по подсказке ИИ

Линия раздела проходит по частоте использования. Единичная задача и любое «объясни, что тут написано» уходят к модели, а ежедневная операция внутри книги остаётся за VBA, только код под неё теперь диктует ИИ, а твоя часть работы сводится к вставке и проверке.

Одной формулой закрывается один вечер. Системная работа с таблицами начинается раньше - с понимания, что вообще отдавать машине и в каком порядке. Курс по ИИ для рутинных задач мы отдаём даром, забрать можно здесь - пройти бесплатное обучение.

Как поставить задачу ИИ, чтобы формула получилась рабочей?

Запрос «напиши формулу чтобы посчитать продажи» похож на заказ такси без адреса: машина приедет, только не туда. Рабочая постановка держится на четырёх опорах.

  1. Структура таблицы. «В колонке A - дата, B - менеджер, C - сумма. Данные со 2 по 500 строку.»
  2. Что нужно на выходе. «Хочу сумму по каждому менеджеру за июль.»
  3. Версия и локализация. «Русский Excel 365, разделитель аргументов - точка с запятой.»
  4. Крайние случаи. «Учти пустые ячейки в сумме и даты в текстовом виде.»

Собранная вместе, формулировка звучит так: «Русский Excel 365. Колонка A - дата сделки, C - сумма, часть ячеек пустые. Дай формулу, которая суммирует C только за июль 2026. Пустую ячейку считать нулём, ошибку не выдавать.» На такой запрос приходит конструкция, которую можно вставить сразу, и шансов рассыпаться на первой же дырке в данных у неё заметно меньше - ты заранее показал те места, обо что формулы обычно и спотыкаются.

Второй приём: попроси объяснить, что делает каждый кусок формулы. Разбор занимает у модели три строки, зато ты понимаешь, где потом менять диапазон, и не превращаешь свой файл в чёрный ящик. Через месяц, когда таблица разрастётся, это сэкономит вечер.

Третий приём - итерации вместо одного идеального запроса. Вставил формулу, получил #ЗНАЧ!, скопировал текст ошибки обратно в диалог вместе с примером строки, на которой она вылезла. Двух-трёх кругов хватает почти всегда. Спор с моделью тут полезнее, чем переписывание запроса с нуля.

Если работа с таблицами у тебя постоянная, имеет смысл один раз собрать для модели контекст: описание структуры файлов, принятые сокращения, правила округления, названия статей расходов. Тогда не придётся объяснять устройство своих данных каждый раз заново. Как такой контекст оформляют и что в него класть, я показывал в разборе про базу знаний для нейросети.

Как свести двенадцать выгрузок в один отчёт?

Возьму типовую задачу, которая встречается почти в каждой небольшой компании. Есть двенадцать месячных выгрузок из CRM, по файлу на месяц. Структура одинаковая, названия колонок кое-где разъехались: где-то «Сумма», где-то «Сумма сделки». Нужен один лист с годовой картиной по менеджерам и по месяцам.

Ручной путь занимает половину рабочего дня: открыть каждый файл, скопировать диапазон, вставить, поправить шапку, проверить, что ничего не потерялось, свести сводную. Через месяц приходит тринадцатый файл, и вся процедура повторяется.

С моделью порядок другой. Первым делом описываешь ей исходники: сколько файлов, где лежат, какие колонки, какая разница в шапках, что должно получиться. Дальше просишь сначала план решения с вариантами - код пойдёт следующим шагом. В ответ обычно приходят три пути: Power Query, макрос на VBA, скрипт на Python. Для задачи внутри Excel, которую надо повторять каждый месяц, разумнее взять Power Query - он живёт в книге, обновляется одной кнопкой и не требует разрешать макросы. Модель распишет шаги по интерфейсу: «Данные» - «Получить данные» - «Из папки» - объединить файлы - привести типы.

Когда шапки разъехались, добавляешь шаг переименования колонок и просишь модель подготовить его текстом на языке M, чтобы вставить в расширенный редактор. Здесь она сильно экономит время: сам синтаксис M мало кто помнит наизусть.

Мусор внутри самих выгрузок ломает итог чаще, чем разъехавшиеся шапки. В файлах из CRM почти всегда попадаются строки «Итого» в конце листа, пустые разделители между блоками и шапка, растянутая на две строки объединением. Доехав до сводной, такой мусор раздувает годовую сумму до неприличных значений, и виновника потом ищешь долго. В описание задачи модели стоит сразу вписать правила отбраковки: строки с пустым идентификатором сделки выбрасывать, строку со словом «Итого» отфильтровать, заголовки брать из первой строки после снятия объединений. Power Query держит эти фильтры внутри запроса, поэтому на тринадцатом файле они сработают без твоего участия.

Сразу после первой сборки сверь количество строк. Сумма строк по двенадцати исходникам за вычетом двенадцати шапок должна совпасть с числом строк в объединённой таблице. Разошлось - смотри, какой файл подхватился наполовину: чаще всего виноват лишний лист в книге или лист с другим именем.

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

Итог по времени: первая сборка занимает час-полтора вместе с проверкой, зато тринадцатый файл потом добавляется в папку и подхватывается одной кнопкой. Именно на этом переходе рутинная работа и перестаёт съедать день в конце каждого месяца. Карту таких переходов по разным участкам бизнеса я собирал в тексте про автоматизацию бизнес-процессов с ИИ.

На чём ИИ регулярно спотыкается в таблицах?

Ошибки модели в Excel довольно однообразны, и знание списка экономит кучу времени.

Разделители аргументов. В русской локали формула пишется через точку с запятой, в англоязычной - через запятую. Модель по умолчанию часто выдаёт англоязычный вариант, и Excel отказывается принимать строку.

Локализованные имена функций. VLOOKUP против ВПР, SUMIFS против СУММЕСЛИМН. Скажи, какая у тебя локализация, и половина проблемы отпадёт.

Функции, которых нет в твоей версии. ПРОСМОТРX, ФИЛЬТР, УНИК, LET появились в свежих сборках. В Excel 2016 или 2019 они не работают, и вместо ответа ты получишь #ИМЯ?. Тогда нужен вариант на ИНДЕКС/ПОИСКПОЗ.

Даты, которые на самом деле текст. Выгрузки из CRM и банк-клиентов часто отдают дату строкой. Формула выглядит правильной, а суммирует ноль. Проверяется быстро: сбрось выравнивание колонки в значение по умолчанию, и настоящая дата уедет к правому краю, тогда как текст останется у левого.

Съезжающие ссылки при протягивании. Модель нередко возвращает формулу с относительными ссылками на диапазон справочника. Протянул вниз - и диапазон уполз: первая строка считает верно, двадцатая берёт огрызок таблицы, а ошибки Excel при этом не показывает. Попроси закрепить диапазоны долларами ($B$2:$C$500) либо оформить справочник умной таблицей с именем, тогда ссылка держится сама.

Пустая ячейка против нуля. В среднем арифметическом пустая ячейка выкидывается из расчёта, а ноль тянет результат вниз. Модель угадывает твоё намерение и попадает не всегда, поэтому желаемое поведение стоит проговорить в запросе.

Объединённые ячейки. В шапке они выглядят аккуратно, а дальше об них спотыкаются и формулы, и макросы. Если модель дала код, который валится с ошибкой на пустом месте, начни поиск причины с объединений.

Выдуманные методы в VBA. Когда задача редкая, модель иногда сочиняет несуществующее свойство объекта и уверенно его использует. Редактор ругнётся при запуске - верни текст ошибки в диалог, второй заход обычно чинит.

Тяжёлые формулы. Массивная конструкция на сто тысяч строк может пересчитываться по несколько секунд при каждом изменении. Если файл начал тормозить, попроси переписать решение через Power Query или через вспомогательную колонку.

Как проверить результат, прежде чем ставить его в отчёт?

Правило проверки простое и экономит нервы. Возьми 3-5 строк, где ответ известен наизусть, посчитай их на калькуляторе и сравни с формулой. Отдельно ткни в пустую ячейку и в самый край диапазона: на этих швах всё и рвётся чаще всего. Совпало - основные грабли обойдены, риск заметно ниже. Полным доказательством на весь массив такая выборка не станет.

Дальше идёт независимая сверка. Если формула считает сумму по менеджеру, построй рядом обычную сводную таблицу и посмотри, сходятся ли итоги. Два разных способа расчёта, которые дают одно число, - хороший признак. Расхождение в пару рублей обычно означает округление; если же итоги разошлись на десятки процентов, ищи потерянные строки или задвоение.

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

Полезная привычка перед запуском макроса: сохранить копию книги. VBA меняет данные без возможности отката через Ctrl+Z, и одна неудачная строка кода способна перезаписать колонку целиком. Копия с датой в имени стоит десяти секунд.

Проверяй ещё и здравый смысл цифры. Выручка выросла втрое за месяц, средний чек упал до 12 рублей, количество сделок стало больше числа клиентов - такие вещи ловятся взглядом раньше любых формул. Навык задавать таблице правильные вопросы разбирал отдельно в тексте про то, какие вопросы задать ИИ для бизнес-аналитики.

Чем выше цена ошибки, тем меньше права на «наверное, правильно». Отчёт для инвестора, налоговая декларация, расчёт зарплаты - здесь садишься и перепроверяешь руками больше строк, добираешь несколько штук из середины массива и сверяешь общий итог с тем, что ты про эти цифры и так знаешь по памяти.

Что делать с чужим макросом, который боятся трогать?

В компаниях старше трёх лет почти всегда обнаруживается книга с макросом от уволившегося сотрудника. Работает, менять страшно, документации нет. Модель тут закрывает задачу, на которую раньше уходили дни программиста.

Порядок такой. Скопируй код целиком из редактора и попроси пересказать его по шагам обычным языком. Вторым запросом уточни, какие ячейки, листы и внешние файлы он изменяет - список того, что макрос трогает, важнее, чем красота его логики. Третьим спроси, есть ли в коде опасные конструкции: Kill удаляет файлы, SaveAs перезаписывает книги, Application.DisplayAlerts = False глушит предупреждения Excel, .SendMail отправляет письма наружу.

Запускать наследство первый раз стоит на копии данных, в отдельной папке, с отключённой почтой. Так ты увидишь результат, ничего не потеряв.

Дальше макрос обычно требуется чуть-чуть изменить: добавить колонку, поменять диапазон, поправить формат даты. Отдай модели код и опиши правку словами - она вернёт версию с изменениями и покажет, какие строки тронула. Просить полное переписывание с нуля тут вредно: рабочий код лучше править точечно.

Отдельно попроси добавить комментарии в код. Через полгода их прочитает следующий человек, и цепочка «никто не знает, как это работает» на нём прервётся.

Какие данные можно отдавать модели, а какие нет?

В публичный чат нельзя вставлять реальные имена, телефоны, адреса, номера договоров и суммы контрактов. Замени их на образцы: три строки с выдуманными Ивановыми и круглыми суммами дают модели ровно столько же информации о структуре таблицы, сколько живая выгрузка на пять тысяч строк.

Схема работы получается такая: обезличенный пример уходит наружу, формула приходит обратно, применяешь ты её уже в своей закрытой книге с настоящими данными. Наружу при этом уезжает только устройство таблицы, сами цифры не покидают твой компьютер.

Отдельно посмотри на политику сервиса в части обучения на твоих данных: у большинства она переключается в настройках, а корпоративные тарифы обычно дают режим, при котором переписка не уходит в обучение. Для компаний с жёстким регламентом остаются локальные модели, которые крутятся на своём железе без выхода в сеть - качество там ниже, зато ничего не покидает контур.

Тот же принцип действует и с макросами: код, который присылает модель, безопасно читать, но перед запуском смотри, куда он лезет. Скрипт, отправляющий содержимое книги на внешний адрес, выглядит в коде как одна безобидная строка.

Возражения, которые слышу чаще всего

«Мне некогда учиться новому инструменту.» Первая формула через диалог занимает примерно столько же времени, сколько поиск ответа на форуме, где обсуждают похожую задачу с 2013 года. Никакого синтаксиса при этом учить не надо - хватает описания своей таблицы словами.

«Модель ошибается, доверять нельзя.» Ошибается, и об этом весь раздел выше. Человек в конце дня после трёхсот однотипных копирований ошибается тоже, только его ошибку никто не проверяет по контрольным строкам. Разница в том, что результат работы модели проверяется за пять минут по понятной процедуре.

«Проще нанять фрилансера.» Для одной сложной системы на полгода - вероятно. Для мелких правок раз в неделю подрядчик превращается в узкое место: ждёшь ответа, объясняешь задачу, платишь за минимальный час. Мелочёвку выгоднее закрывать самому.

«У меня Excel 2016, свежие функции всё равно не работают.» Скажи модели номер версии прямо в первом сообщении, и она соберёт решение на том наборе, который у тебя есть: ВПР, ИНДЕКС/ПОИСКПОЗ, СУММЕСЛИМН, вспомогательные колонки. Со старой сборкой конструкция выйдет громоздче, считать она будет ровно то же самое.

«У нас всё в Google Sheets.» Логика переносится один в один, меняется только инструмент: вместо VBA там Apps Script на JavaScript, и модель пишет его так же охотно. Формулы в Sheets ближе к англоязычному Excel, разделитель аргументов - запятая, об этом стоит сказать в запросе.

«Через год всё поменяется, зачем разбираться сейчас.» Модели и интерфейсы обновляются каждый год, при этом привычка формулировать задачу структурно переезжает в любой следующий сервис. Кто год назад разобрался, как внятно объяснить машине задачу, тот сегодня работает в другом чате без всякой переподготовки.

«Мой бизнес слишком маленький для автоматизации.» Как раз в маленьком бизнесе владелец сам сидит в таблицах по вечерам, и час, отобранный у рутины, стоит дороже всего. С чего начинать при небольших ресурсах, разбирал в тексте про ИИ для малого бизнеса, а список конкретных задач под ассистента собран в материале про семь задач для ИИ-ассистента.

Где в автоматизации таблиц всё равно нужен человек?

Модель снимает с тебя набор синтаксиса и мучительное вспоминание функций. Ответственность остаётся на тебе целиком, её нельзя делегировать так же, как нельзя делегировать подпись под отчётом.

Решение, что вообще считать, принимаешь ты. Модель посчитает ровно то, о чём её попросили, а вопрос «правильный ли это показатель для бизнеса» лежит за пределами её компетенции. Средний чек по всем сделкам вместе с оптовыми отгрузками формально считается легко, только управленческого смысла в получившейся цифре мало.

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

Приёмку тоже никто не заберёт: проверить формулу на живых данных может только тот, у кого они открыты на экране.

Как встроить это в ежедневную работу?

Удачная формула снимает одну задачу и дальше лежит без дела. Автоматизация начинается там, где появляется роль, работающая по регламенту: аналитик, который сводит цифры каждый понедельник, помощник, собирающий утренний отчёт до того, как ты открыл ноутбук, оператор, чистящий выгрузки по одинаковым правилам. С этого момента таблицы превращаются из ручной возни в участок машины, который крутится сам.

Собирается такая роль по шагам: описание задачи, правила обработки данных, формат результата, порядок проверки. Общую логику я разбирал в тексте про то, что такое цифровой сотрудник и чем он полезен, а пошаговую сборку - в инструкции про то, как собрать ИИ-сотрудника с нуля.

Когда операций становится много и они цепляются друг за друга (выгрузка приходит на почту, попадает в таблицу, оттуда идёт в отчёт, а руководителю уходит уведомление), к делу подключаются связки между сервисами. Как их собирать без программирования, показывал в пошаговом разборе n8n.

Готовые связки, рабочие промпты и шаблоны ролей цифровых сотрудников лежат в закрытом канале ИИмперии. Оттуда удобно брать заготовку и подгонять под свои таблицы, чтобы формула встала в работу, а не осталась одной удачной находкой, о которой через месяц забудешь сам.

Выбирать раз и навсегда между VBA и ИИ бессмысленно. Старый инструмент теперь обслуживается новым: ты формулируешь задачу и принимаешь результат, набор кода уходит машине. Кусок автоматизации при таком раскладе доезжает до работы быстрее, чем раньше доезжала его первая черновая версия.

Источники

Частые вопросы

ИИ полностью заменит VBA?

Нет. Для повторяющейся кнопки внутри книги VBA надёжнее и работает офлайн. ИИ сильнее там, где логику нужно придумать один раз или разобрать чужую таблицу.

Можно ли давать ИИ реальную таблицу с данными клиентов?

Не загружай персональные данные и коммерческие цифры в публичные сервисы. Обезличь: замени имена и суммы на образцы, попроси формулу, потом примени её у себя.

Что быстрее для разовой задачи - формула или макрос?

Почти всегда формула. Макрос имеет смысл, когда действие повторяется каждый день или затрагивает много файлов сразу.

Как понять, что ИИ ошибся в формуле?

Прогони её на 3-5 строках, где ответ ты знаешь заранее, и сравни с ручным подсчётом. Проверка на краях диапазона и на пустой ячейке отсекает основные ошибки, но полной гарантии не даёт: чем важнее отчёт, тем больше строк стоит проверить руками.

Что делать, если формула от ИИ не работает в моей версии Excel?

Скажи модели версию и локализацию. Функции вроде ПРОСМОТРX и ФИЛЬТР появились в свежих сборках, а в Excel 2016 их нет - тогда нужен вариант на ВПР и ИНДЕКС/ПОИСКПОЗ.