Продукты Р7
Корпоративный сервер 2024
Корпоративный сервер 2024
Сервер документов
Сервер документов
Редакторы документов
Редакторы документов
Корпоративный сервер 2019
Корпоративный сервер 2019
Графика
Графика
ВКС и мессенджер
ВКС и мессенджер
Мобильные редакторы
Мобильные редакторы
Почтовый сервер
Почтовый сервер
Органайзер
Органайзер
Сервер лицензирования
Сервер лицензирования
Файл-Экспресс
Файл-Экспресс
Аналитика
Аналитика
Дополнительно
Часто задаваемые вопросы
Разработчикам
Интеграции
Новые возможности

Конвертация макросов

Обновлено: 07.08.26

Инструкция актуальна для версии продукта: 2026.1.2.1942

Макросы Р7 отличаются от макросов Microsoft, поскольку последние используют язык скрипта Visual Basic для приложений (VBA). JavaScript более гибкий и может использоваться с любой платформой (что важно, поскольку редакторы Р7 поддерживаются на платформах Windows, Linux и Mac OS).

Это может быть причиной некоторых неудобств, если вы ранее использовали Microsoft Office с макросами, так как они станут несовместимы с макросами Р7. Вы можете преобразовать ранее использовавшиеся макросы, чтобы использовать их с новыми редакторами.

Процесс не слишком сложный. Давайте посмотрим на следующий пример:

Sub Example()
    Dim myRange
    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

Макрос подсчитывает сумму значений из трех диапазонов ячеек столбца A и помещает результаты в три ячейки столбца B.

Того же самого можно добиться с помощью макросов Р7, код будет практически идентичен и прост для понимания, если вы знаете как Visual Basic для приложений, так и JavaScript:

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

Точно так же любой другой скрипт Visual Basic для приложений можно преобразовать в код JavaScript, совместимый с макросами Р7.

Была ли эта статья полезной?

Поделитесь пожалуйста своим мнением

      В статье есть ошибкиРекомендации не помоглиТекст трудно понятьСодержание статьи не соответствует заголовкуДругое