Migsoft
0

Макросы в Р7-Офис: как перенести VBA на JavaScript

Макросы в Р7-Офис работают на JavaScript, а не на VBA, поэтому макрос из Excel или Word не запустится как есть. Разбираем, как устроена автоматизация в Р7, как провести аудит макросов и какие из них переносить.

Виталий Куренков
Менеджер ООО «МИГСОФТ»: подбор лицензий российского ПО, счета и закрывающие документы для юрлиц
24 сентября 2026 · 8 минут чтения
Содержание

Макросы в Р7-Офис есть, но пишутся они на JavaScript, а не на Visual Basic для приложений (VBA). Поэтому макрос, который годами жил в книге Excel или шаблоне Word, после перехода не запустится сам: его нужно перевести. Звучит страшнее, чем выглядит: большая часть макросов в компаниях либо давно не используется, либо заменяется штатной функцией редактора, а переписывать приходится немногое. Ниже — как устроены макросы Р7, чем они отличаются от VBA и в каком порядке переносить автоматизацию, чтобы переход на Р7-Офис не остановил работу бухгалтерии или отдела продаж.

Почему макрос из Excel не запустится в Р7-Офис

VBA — язык Microsoft, и выполнять его умеет только Microsoft Office. Р7-Офис работает на Windows, Linux и macOS и в браузере, а в Linux и в веб-версии запустить VBA невозможно в принципе — поэтому вендор выбрал для макросов JavaScript, который одинаково работает на всех платформах. Совместимости с VBA нет и не будет: код нужно переписать.

Хорошая новость в том, что файлы от этого не портятся. Если открыть книгу .xlsm с VBA-макросом в Р7-Офис и сохранить её, исходный код макроса остаётся в файле нетронутым — это подтверждает вендор. Значит, переводить документы можно постепенно: пока макрос не переписан, файл по-прежнему откроется в Excel у того, кому он нужен.

Как устроены макросы в Р7-Офис

Макрос Р7 — небольшой скрипт на JavaScript, который обращается к документу через программный интерфейс редакторов (API Document Builder): получить лист, диапазон ячеек, абзац, таблицу — и что-то с ними сделать. Работа с макросами идёт на вкладке «Плагины» → «Макросы»: здесь их создают, переименовывают, запускают кнопкой «Выполнить» и удаляют.

Что важно знать до переноса:

  • Макрос хранится в документе. Сделать его «глобальным», как личную книгу макросов Excel, нельзя. Если инструмент нужен всем сотрудникам во всех файлах, его оформляют плагином — о нём ниже.
  • У макроса нет доступа к системе. Код выполняется внутри редактора: он не читает файлы на диске и не управляет другими программами. Для безопасности это плюс, для переноса — главное ограничение.
  • Запуск кнопкой. В редакторе таблиц макрос можно назначить фигуре или картинке («Назначить макрос» в контекстном меню) — щелчок по ней запускает скрипт.
  • Автозапуск. Макросу можно поставить признак «Автостарт», и он выполнится при открытии документа, если это разрешает настройка редактора.

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

Примеры и справочник методов лежат в разделе «Макросы» справочного центра Р7.

VBA и JavaScript: чем отличаются макросы

VBA в Microsoft Office Макросы в Р7-Офис
Язык Visual Basic для приложений JavaScript и API редакторов
Где работают Windows-версия Office Windows, Linux, macOS, веб-редакторы
Где хранятся в документе, надстройке или личной книге макросов только в документе; общий инструмент — плагин
Доступ к файлам и другим программам есть нет, код работает внутри редактора
Запуск из списка, кнопкой, событием из окна «Макросы», фигурой с назначенным макросом, автостартом
Отладка редактор VBA консоль разработчика

Для переноса из таблицы следуют два вывода. Макрос, который считает, форматирует и раскладывает данные внутри документа, переводится почти строка в строку. Макрос, который выгружает файлы в папку, отправляет письма через Outlook или обращается к 1С, в JavaScript-макрос не превратится: такую задачу переносят в плагин или в интеграцию на стороне сервера.

Как выглядит перевод макроса с VBA

Возьмём пример из документации вендора: макрос складывает три диапазона столбца A и пишет результат в столбец B. На VBA:

Sub Example()
    Dim result
    Dim Run As Long
    For Run = 1 To 3
        Select Case Run
            Case 1: result = "=SUM(A1:A100)"
            Case 2: result = "=SUM(A1:A300)"
            Case 3: result = "=SUM(A1:A25)"
        End Select
        ActiveSheet.Range("B" & Run) = result
    Next Run
End Sub

То же в Р7-Офис:

(function () {
    for (let run = 1; run <= 3; run++) {
        let result = "";
        switch (run) {
            case 1: result = "=SUM(A1:A100)"; break;
            case 2: result = "=SUM(A1:A300)"; break;
            case 3: result = "=SUM(A1:A25)"; break;
        }
        Api.GetActiveSheet().GetRange("B" + run).Value = result;
    }
})();

Логика та же, меняются синтаксис и имена объектов: ActiveSheet становится Api.GetActiveSheet(), Range — GetRange. Переменные в макросах Р7 обязательно объявлять: скрипты выполняются в строгом режиме JavaScript. Для отладки в веб-версии открывают консоль разработчика клавишей F12, а десктопные редакторы запускают с параметром --ascdesktop-support-debug-info, после чего консоль вызывается клавишей F1.

Аудит макросов перед переходом

Переписывать всё подряд — самый дорогой путь. Практика внедрений Р7 другая: сначала выяснить, какие макросы действительно работают, и только их переводить.

  1. Соберите файлы с макросами. Это книги и документы с поддержкой макросов (.xlsm, .xlsb, .docm, .pptm), надстройки (.xlam, .dotm) и личные книги макросов сотрудников.
  2. Выясните, кто и как часто их запускает. Для этого удобно поставить Р7-Офис рядом с Microsoft Office, не меняя ассоциации файлов, — при тихой установке MSI это параметр REGISTER_NONE=1 — и понаблюдать, какие документы реально открываются в старом пакете.
  3. Разложите макросы по корзинам: не нужен — удалить; заменяется штатной функцией (сводные таблицы со срезами, условное форматирование, удаление дубликатов) — не переписывать; работает внутри документа — перевести в JavaScript-макрос; нужен всем или требует интерфейса — сделать плагином; обменивается данными с учётной системой — вынести в интеграцию.
  4. Переводите в порядке зависимости. Первыми на Р7 уходят рабочие места без макросов, последними — сотрудники, чья работа завязана на интеграции.

Когда нужен плагин, а не макрос

Плагин — это расширение редактора на HTML и JavaScript со своей кнопкой и окном. В отличие от макроса он не привязан к документу: его устанавливают в редакторы, и он доступен во всех файлах. Плагин — правильный выбор, когда инструментом пользуется весь отдел, нужен диалог с полями ввода или шаблон должен одинаково работать у сотни сотрудников.

Готовые плагины есть в каталоге вендора — более 30 решений: распознавание текста (OCR), редактор изображений, QR-коды, водяные знаки, автосохранение и другие. Свой плагин для внутренних процессов пишется по руководству разработчика на support.r7-office.ru и ставится через вкладку «Плагины».

Как управлять макросами на парке компьютеров

Администратор решает, будут ли макросы выполняться сами. В «Дополнительных параметрах» редактора (вкладка «Файл») есть три режима автозапуска: «Включить все», «Показывать уведомления» — перед запуском пользователь видит предупреждение и сам разрешает или запрещает — и «Отключить все».

Если политика безопасности требует запретить автозапуск без права пользователя что-то поменять, это делается в конфигурации редакторов: параметр macros: false скрывает настройку и выключает автозапуск. Так же можно убрать из интерфейса кнопку «Макросы» и запретить сотрудникам устанавливать сторонние плагины. Вендор предупреждает, что такие правки делаются с правами администратора и после резервной копии изменяемых файлов, — подробные инструкции есть в справочном центре.

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

Кто перепишет макросы

Небольшой набор макросов переводит сотрудник, который знает VBA и готов разобраться в JavaScript: API редакторов описан в справочном центре, примеры можно брать оттуда же. Для обучения у вендора есть электронный курс «Р7 офис. Макросы» на 8 академических часов, а авторизованные учебные центры ведут курс по макросам Р7 онлайн и очно.

Когда макросов много или они связаны с учётными системами, перенос заказывают у партнёров-интеграторов Р7. Платить за переписанный макрос приходится один раз: дальше он одинаково работает на Windows, Linux и в веб-редакторах. Прежде чем выбирать исполнителя, соберите реестр макросов по шагам аудита выше — по нему оценивают объём работ.

Лицензии Р7-Офис для перехода

Макросы и плагины входят в десктопную версию Р7-Офис вместе с редакторами. Лицензия считается на рабочее место, виды — бессрочная, подписка на год и продление права на обновления. Из чего складывается закупка для организации, подробно разобрано в статье «Р7-Офис: редакции, тарифы и лицензирование», а как установить и активировать лицензии на парке компьютеров — в отдельной инструкции. Сравнение с другими офисными пакетами — в статье «Р7-Офис, МойОфис или ONLYOFFICE».

Товар Р7-Офис Профессиональный (десктопная версия) от 6 000 ₽ Смотреть →

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

Р7-Офис. Профессиональный (Десктопная версия), лицензия на 1 год с правом бессрочного использования
Рекомендуем в статье Р7-Офис. Профессиональный (Десктопная версия), лицензия на 1 год с правом бессрочного использования
R7DTB.UI.RS.1YUL0.0725
15 300 ₽ НДС не облагается (ст. 149 НК РФ) — позиция в реестре российского ПО

ООО «МИГСОФТ» — авторизованный партнёр АО «Р7». Лицензии Р7-Офис включены в реестр российского ПО и не облагаются НДС; счёт, договор и закрывающие документы оформляем на юрлицо. Цены и все редакции Р7-Офис — на карточке десктопной версии.

Реселлер
Авторизованный партнёр «Р7-Офис».
Документы для тендера
КП с печатью, счёт с отсрочкой, УПД, номера реестра в спецификации.
Сверка совместимости
Проверим вашу конфигурацию по базе вендора до оплаты — бесплатно.

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

Как включить макросы в Р7-Офис? +

Макросы открываются на вкладке «Плагины» → «Макросы»: там их создают, переименовывают и запускают кнопкой «Выполнить». Автоматический запуск при открытии файла настраивается во вкладке «Файл» → «Дополнительные параметры»: «Включить все», «Показывать уведомления» или «Отключить все». Если этой настройки нет, её скрыл администратор.

Можно ли запустить макрос VBA в Р7-Офис без переписывания? +

Нет. Р7-Офис выполняет макросы на JavaScript, а VBA не запускается ни в Linux, ни в веб-редакторах, поэтому вендор совместимость с VBA не делает. Макрос переводят на JavaScript — если он работает только с данными документа, логика переносится почти строка в строку.

Пропадёт ли VBA-код из файла, если сохранить его в Р7-Офис? +

Нет. Исходный VBA-макрос при открытии и сохранении в Р7-Офис остаётся в файле без изменений, поэтому документы можно переводить постепенно: у тех, кто ещё работает в Microsoft Office, макрос продолжит работать.

Можно ли сделать макрос общим для всех документов? +

Нет: макрос в Р7-Офис хранится в конкретном документе. Инструмент, который нужен во всех файлах и всем сотрудникам, оформляют плагином — его устанавливают в редакторы, и он доступен в любом документе.

Где найти примеры макросов Р7-Офис на JavaScript? +

В справочном центре вендора, в разделе «Макросы» → «Примеры макросов»: подсветка дубликатов, поиск пустой строки, курсы валют, форматирование диапазона как таблицы и другие. Там же описан API редакторов. Для обучения у вендора есть электронный курс «Р7 офис. Макросы» на 8 академических часов.

Как запустить макрос кнопкой и записать им значение в ячейку? +

В редакторе таблиц вставьте фигуру или картинку, щёлкните по ней правой кнопкой и выберите «Назначить макрос» — после этого щелчок по фигуре запускает скрипт. Значение в ячейку макрос записывает строкой вида Api.GetActiveSheet().GetRange("B1").Value = 100;.

Виталий Куренков
Менеджер ООО «МИГСОФТ»: подбор лицензий российского ПО, счета и закрывающие документы для юрлиц

Читайте дальше

Антивирус для организации: как выбрать в 2026 году Импортозамещение Антивирус для организации: как выбрать в 2026 году Антивирус для организации выбирают не по рейтингам, а по критериям: состав парка, операционные системы, требования регуляторов и бюджет. Разбираем, чем корпоративная защита отличается от домашней и какие российские антивирусы доступны компании в 2026 году. 1 сентября 2026 · 8 мин чтения Р7-Офис, МойОфис или ONLYOFFICE: что выбрать организации Р7-Офис · Импортозамещение Р7-Офис, МойОфис или ONLYOFFICE: что выбрать организации Оба пакета в реестре российского ПО, оба открывают DOCX и XLSX, оба работают на Astra Linux и РЕД ОС — и всё же выбирают их по разным причинам. Сравниваем Р7-Офис и МойОфис по критериям, которые решают исход закупки, и разбираем, где место ONLYOFFICE и LibreOffice. 27 августа 2026 · 7 мин чтения Миграция с Oracle на PostgreSQL: план, инструменты, цена Postgres Professional · Импортозамещение Миграция с Oracle на PostgreSQL: план, инструменты, цена Миграция с Oracle на PostgreSQL — не прыжок в неизвестность, а управляемый проект с типовыми этапами: аудит, конвертация схемы и кода, перенос данных, тестирование, параллельная эксплуатация. Главное решение принимается в самом начале: переносить на бесплатный PostgreSQL или на Postgres Pro Enterprise, где привычная Oracle-специфика — пакеты PL/SQL, UTL_HTTP, DBMS_LOB — работает штатно. 14 августа 2026 · 8 мин чтения
Р7-Офис Профессиональный (десктопная версия)
от 6 000 ₽