Если каждую неделю приходится копировать одинаковые листы, собирать файлы из папки или сохранять десятки отчётов в PDF, задачу можно автоматизировать VBA-макросом. Промпты для VBA-макросов помогают описать действие обычными словами и получить черновик кода, инструкцию по установке и сценарий проверки. Такая нейросеть для VBA выступает консультантом: сам чат не запускает Excel и не видит, сработал ли код, поэтому первый запуск нужно делать в настольном приложении и на копиях файлов.
Ниже — готовые запросы для пяти типовых задач, универсальный шаблон и системный промпт генератора VBA. Их можно копировать в рабочий чат и подставлять свои имена листов, колонок и папок.
Короткий ответ: как безопасно получить VBA-код от ИИ
Опишите версию Excel и ОС, книгу с макросом, источники, листы, диапазоны, правила дублей и запрещённые действия. Попросите сначала перечислить допущения, затем дать код с Option Explicit, явными объектами книг и листов, обработчиком ошибок и восстановлением настроек Excel. Запускайте результат только в настольном Excel, на копиях файлов и сначала на минимальном наборе данных.
Какую задачу решает промпт для макроса Excel
VBA — встроенный язык автоматизации настольных приложений Microsoft Office. В Excel макрос может пройти по листам, открыть книги из папки, перенести строки, создать реестр, применить форматирование или экспортировать листы. Пользователь описывает процесс, а модель превращает описание в код.
Промпт нужен не только для генерации. Хороший запрос заставляет чат сначала уточнить устройство книги, назвать допущения, добавить обработку ошибок и объяснить, как проверить результат. Это особенно важно для новичка: два макроса могут выглядеть похоже, но один работает с активной книгой, а другой — с книгой, где хранится код. Ошибка в выборе объекта изменит не тот файл. Поэтому просьба «сгенерировать VBA-код» без описания книг и правил перезаписи слишком расплывчата.
Чат в этом сценарии работает как консультант. Он может подготовить VBA-код и объяснение, но не нажимает кнопку запуска, не проверяет содержимое папки и не подтверждает, что итог совпал с учётной системой.
Когда использовать VBA, а когда выбрать другой инструмент
Макрос подходит, если процесс выполняется в настольном Excel, повторяется по одинаковым правилам и включает действия с листами, книгами или файлами. Например: каждый филиал присылает книгу одного формата, а сотрудник собирает строки листа Продажи в единый реестр.
Не всякая автоматизация требует VBA:
| Задача | Что выбрать | Почему |
|---|---|---|
| Один расчёт в строке | Формула Excel | Проще увидеть и проверить |
| Регулярная загрузка и преобразование больших выгрузок | Power Query | Шаги преобразования сохраняются в запросе |
| Кнопка, обработка листов, локальных файлов и окон Excel | VBA | Глубокая автоматизация настольного Excel |
| Совместная облачная книга и запуск через Power Automate | Office Scripts | Кроссплатформенный облачный сценарий |
| Сложная обработка данных вне Excel | Python, SQL или ETL | Код и данные не завязаны на интерфейс книги |
Microsoft указывает, что VBA ориентирован на настольные решения, а Office Scripts — на облачные и кроссплатформенные. В Excel для web нельзя создавать, запускать или редактировать VBA-макросы. Если команда работает только в браузере, просите ИИ написать Office Script, а не VBA.
Что передать в чат перед генерацией VBA-кода
Фразы «объедини все файлы» недостаточно. Чат не знает, какие файлы считать входными, какой лист брать и что делать при совпадении ключей. Перед запросом заполните карточку:
- версия Excel и операционная система;
- формат рабочей книги: XLSM или XLSB;
- книга, где находится макрос, и книги-источники;
- точные имена листов, заголовков и первая строка данных;
- путь к папке или требование выбрать её через диалог;
- маска файлов: например, только
*.xlsx, без временных файлов~$; - ключ для проверки дублей;
- правило конфликта имён и существующих данных;
- действие при пустом листе, закрытом файле или ошибке;
- формат отчёта о выполнении;
- действия, которые запрещены без подтверждения.
Для первого сообщения достаточно указать известное и попросить модель задать вопросы по пробелам. Не выдумывайте точные пути и диапазоны заранее: лучше потребовать именованные константы в начале кода, чтобы их можно было изменить в одном месте.

Чем точнее описаны книга, входные файлы и правила конфликтов, тем меньше опасных догадок останется в коде.
Короткие промпты для VBA-макросов
1. Объединить одинаковые листы в одной книге
Напиши VBA-макрос для Excel [версия, Windows/Mac]. В книге есть листы филиалов с одинаковыми колонками A:H и заголовками в строке 1. Собери строки со всех листов, кроме «Свод» и «Настройки», на лист «Свод». Заголовок перенеси один раз, пустые строки пропускай, а в колонку I добавь имя исходного листа. Не удаляй и не изменяй листы-источники. Перед кодом перечисли допущения, после кода дай инструкцию по установке и пять тестов.
Ожидаемый результат — процедура, которая очищает только область прежнего результата на листе Свод, собирает данные и сообщает число перенесённых строк. Проверьте книгу без данных, лист с другой структурой и повторный запуск.
2. Объединить книги из выбранной папки
Создай VBA-макрос, который предлагает пользователю выбрать папку, открывает только файлы XLSX, пропускает текущую книгу и временные файлы, читает лист «Продажи» и добавляет строки со второй строки в лист «Реестр» книги с макросом. Исходные книги открывай только для чтения и закрывай без сохранения. Добавь колонки «Файл-источник» и «Дата загрузки». Если листа нет, запиши файл в журнал ошибок и продолжи. Ничего не удаляй и не перезаписывай без подтверждения.
Попросите чат отдельно объяснить, где используется ThisWorkbook, а где объект открытой книги. В справке Microsoft метод Workbooks.Open поддерживает режим ReadOnly; это стоит потребовать явно.
ReadOnly не отключает макросы в открываемой книге. Microsoft отдельно указывает, что при программном открытии файлов макросы по умолчанию могут быть разрешены. Если набор источников может включать XLSM или другие книги с активным содержимым, попросите сохранить текущее значение Application.AutomationSecurity, временно установить msoAutomationSecurityForceDisable перед Workbooks.Open и восстановить исходную настройку в обработчике завершения.
3. Создать реестр файлов
Напиши VBA-макрос для реестра файлов в выбранной папке. На лист «Реестр файлов» выведи полный путь, имя, расширение, размер в байтах и дату изменения. Обрабатывай только текущую папку, без подпапок. Перед заполнением спроси подтверждение на очистку старого реестра. Не открывай файлы и не меняй их. В конце покажи количество найденных и пропущенных объектов.
В примере важно разграничить чтение метаданных и открытие документов. Если нужны подпапки, символьные ссылки или сетевой диск, задачу лучше вынести в отдельную версию и тестировать на небольшой папке.
4. Разделить таблицу по листам
Подготовь VBA-макрос для книги XLSM. На листе «Данные» таблица A1:J50000, ключ группировки — колонка D «Регион». Для каждого уникального непустого региона создай или обнови отдельный лист: безопасно преобразуй значение в допустимое имя листа, сохрани заголовок и скопируй строки. Перед заменой существующего листа запроси подтверждение. Исходный лист не изменяй. Верни код, список рисков и сценарий проверки на пяти тестовых строках.
Главный риск — не скорость, а конфликт имён: в названии региона могут быть запрещённые символы, слишком длинный текст или два значения, которые после очистки становятся одинаковыми. Требуйте от модели явного правила разрешения конфликтов.
5. Экспортировать листы в PDF
Напиши VBA-макрос для экспорта указанных листов в отдельные PDF. Список листов берётся с листа «Настройки» из A2:A20, папку выбирает пользователь. Имя файла: дата в формате YYYY-MM-DD, дефис и безопасное имя листа. Если PDF уже существует, не перезаписывай его: добавь запись в журнал и продолжи. Перед экспортом проверь область печати, существование листа и доступность папки. В конце покажи сводку: создано, пропущено, ошибки.
Чат может подготовить код для ExportAsFixedFormat, но не проверит переносы страниц и читаемость PDF. Откройте минимум один файл из каждого типа листа вручную.
Промпт для диагностики существующего макроса
Если код уже есть, не просите «исправить всё». Передайте текст макроса, сообщение об ошибке, строку остановки и небольшой пример структуры книги.
Проведи ревью VBA-кода ниже. Сначала объясни его назначение по шагам. Затем найди: неявные ссылки на ActiveWorkbook и ActiveSheet, незакреплённые переменные, риск пропуска ошибок, перезапись файлов, удаление данных, циклы по всем ячейкам и состояния Excel, которые не восстанавливаются после сбоя. Не переписывай код целиком до диагноза. После диагноза предложи минимальную исправленную версию и тесты. Ошибка: [текст]. Строка остановки: [строка]. Структура книги: [описание]. Код: [вставьте VBA].
Попросите использовать Option Explicit и называть объекты книг и листов явно. Если код временно отключает ScreenUpdating, EnableEvents, DisplayAlerts или автоматический пересчёт, обработчик завершения должен вернуть исходные настройки даже при ошибке. Особенно осторожно с DisplayAlerts=False: Excel может автоматически выбрать ответ диалога, а в отдельных сценариях это приводит к перезаписи файла.
Большой промпт для генерации VBA-макроса
Ты помогаешь подготовить VBA-макрос для настольного Excel. Не утверждай, что запускаешь Excel или проверил результат.
Задача: [что нужно автоматизировать].
Среда: [Excel и ОС].
Книга с макросом: [формат и назначение].
Источники: [книги, листы, папка, маска файлов].
Структура: [заголовки, первая строка, ключи, объём].
Результат: [куда записать, формат, порядок колонок].
Конфликты: [дубли, существующие листы и файлы].
Ошибки: [что пропустить, что остановить, что записать в журнал].
Запрещено: [удаление, перезапись, изменение источников].
Сначала задай вопросы по критическим пробелам. Затем:
1. Перечисли допущения и рискованные действия.
2. Дай один полный VBA-модуль с Option Explicit и явными объектами Workbook/Worksheet.
3. Вынеси настройки в именованные константы или отдельный блок.
4. Добавь обработчик ошибок и обязательное восстановление состояния Excel.
5. Не используй On Error Resume Next для всей процедуры.
6. Не отключай предупреждения без необходимости; перед перезаписью запроси подтверждение.
7. Создай журнал обработанных, пропущенных и ошибочных элементов.
8. Объясни, куда вставить код и как сохранить книгу.
9. Дай пошаговый тест на копии: обычный случай, пустой источник, дубль, отсутствующий лист и ошибка доступа.
10. Заверши списком ограничений, которые нельзя подтвердить в чате.
Этот шаблон подходит, когда макрос открывает несколько файлов или меняет структуру книги. Для одной короткой операции лучше использовать короткий запрос: лишние требования затрудняют чтение кода.
Системный промпт генератора VBA-макросов
Системный промпт пригодится, если команда регулярно просит чат писать и разбирать макросы.
Ты — консультант по VBA для настольного Excel в чат-режиме. Ты не открываешь книги, не запускаешь и не отлаживаешь код и не подтверждаешь его безопасность.
Перед генерацией выясни: версию Excel и ОС; где находится макрос; имена книг, листов, колонок и первую строку данных; объём; путь или способ выбора папки; правила дублей, очистки, перезаписи и ошибок; ожидаемый отчёт.
Если действие может удалить, заменить или перезаписать данные, предложи безопасный режим предварительного просмотра и запрос подтверждения. Не советуй глобально включать все макросы. Не придумывай пути, листы и диапазоны.
Возвращай: допущения; один полный модуль с Option Explicit; пояснение ключевых блоков; инструкцию по установке; тесты на копиях; ограничения. Используй явные объекты Workbook и Worksheet. Добавляй обработку ошибок и восстановление изменённых свойств Application. При программном открытии книг отдельно управляй AutomationSecurity и восстанавливай прежнее значение. Не скрывай ошибки глобальным On Error Resume Next. Для работы с файлами сохраняй журнал результата.
Если VBA не подходит для платформы или задачи, объясни почему и предложи формулу, Power Query, Office Scripts, Python или другой проверяемый вариант.
Пример первого сообщения
Excel 2024 для Windows. Макрос хранится в
Сборщик.xlsm. Пользователь выбирает папку с XLSX-файлами филиалов. В каждом есть листПродажи, заголовки A1:H1, данные со строки 2. Нужно собрать их на листРеестр, добавить имя файла и не менять источники. Дубли определяются поorder_idв колонке A; существующие строки оставлять, новые дубли пропускать. Нужен журнал пропущенных файлов.
Ожидаемый ответ сначала уточнит, где хранить журнал, как обрабатывать пустой order_id и следует ли включать подпапки. Затем чат даст код и проверки, не заявляя, что макрос уже работает.
Как вставить и проверить код вручную
- Сделайте копии рабочей книги и нескольких входных файлов. Не используйте единственные экземпляры.
- Сохраните книгу с кодом в формате XLSM или XLSB. В обычном XLSX проект VBA не сохраняется.
- Откройте редактор Visual Basic через вкладку «Разработчик», создайте стандартный модуль и вставьте код.
- Выполните команду Debug → Compile VBAProject. Исправьте ошибки компиляции до запуска.
- Поставьте точку остановки перед первым изменением данных и пройдите первые шаги клавишей F8.
- Запустите макрос на минимальном наборе: две маленькие книги или пять строк.
- Сверьте число входных и выходных строк, ключи, заголовки, форматы и журнал ошибок.
- Повторите запуск. Результат не должен неожиданно удваиваться или перезаписывать файлы.
- Закройте и снова откройте книгу, чтобы убедиться, что расчёт, события и предупреждения Excel работают нормально.

Первый успешный запуск ещё не доказывает надёжность: повторите его и сверьте журнал с исходными файлами.
Microsoft рекомендует управлять запуском через настройки безопасности макросов, а не включать всё активное содержимое без проверки. Полученный от модели код нужно рассматривать как код из внешнего источника: прочитать, испытать на копии и только затем переносить в рабочий процесс.
Что сможет чат — и чего не сможет
Чат поможет превратить описание процесса в промпт, подготовить VBA-модуль, объяснить строки, найти подозрительные места и составить тесты. Такой ИИ для макросов Excel полезен для последовательного уточнения требований: в тот же диалог можно вернуть сообщение об ошибке и получить следующую версию.
Чат не сможет самостоятельно открыть вашу папку, выполнить код в Excel, увидеть диалог, проверить каждый файл и восстановить данные после ошибочного макроса. Он также не запускает VBA в Excel для web. Возможность модели принять вложенную книгу не означает, что она проверила макрос на реальном приложении.
Начните с одного безопасного сценария: создать реестр файлов без их открытия или собрать две тестовые книги только для чтения. Скопируйте подходящий промпт в рабочий чат, заполните карточку задачи и потребуйте тестовый план до кода. После успешной ручной проверки сохраните уточнённый запрос как командный шаблон.
Связанные материалы
- Промпты для формул Excel — когда автоматизация помещается в формулу.
- Промпты для сводной таблицы — как спроектировать отчёт без VBA.
- Системные промпты — как закрепить роль, правила и формат ответа.
Больше материалов по теме — в разделе «Промпты».