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

Написание макросов

Обновлено: 07.08.26

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


Теперь, когда вы знаете, как работают макросы, попробуйте написать свой собственный макрос. У нас есть таблица, и нам нужно «закрасить» чередующиеся строки таблицы (нечетные будут окрашены в зеленый цвет, четные станут красными). Таблица содержит 200 строк и столбцов от A до S. Вручную это заняло бы много времени. Таким образом, использование макросов будет лучшим решением этой проблемы.

  1. Откройте редакторы Р7 и создайте новую таблицу.
  2. Теперь откройте вкладку «Плагины» и выберите «Макросы». Появится окно макросов.
  3. Щелкните Создать. Вам будет представлена базовая функция-обертка, которая позволит вам ввести необходимый код:
    (function() 
    { 
    // ... your code goes here ... 
    })();
  4. Давайте обратимся к документации API Document Builder, чтобы узнать, что нам нужно для выполнения нашей задачи:
    • Сначала получите текущий рабочий лист с помощью метода GetActiveSheet:
      var oWorksheet = Api.GetActiveSheet();
    • Затем создайте цикл для запуска от первой до последней строки:
      for (var i = 1; i < 200; i += 2) { 
      }
    • Установите две переменные: одну для нечетных строк, вторую для четных строк:
      var rowOdd = i, rowEven = i + 1;
    • Теперь, когда у нас есть доступ как к нечетным, так и к четным строкам, давайте раскрасим их в нужные цвета. Установите нужные цвета с помощью метода CreateColorFromRGB. Получите диапазон ячеек в строке с помощью метода GetRange и установите цвет для нечетных строк:
      oWorksheet.GetRange("A" + rowOdd + ":S" + rowOdd).SetFillColor(Api.CreateColorFromRGB(118, 190, 39));

      То же самое для четных рядов, но другим цветом:

      oWorksheet.GetRange("A" + rowEven + ":S" + rowEven).SetFillColor(Api.CreateColorFromRGB(186, 56, 46));

Теперь давайте подведем итог с полным кодом скрипта:

(function() 
{ 
     var oWorksheet = Api.GetActiveSheet(); 
     for (var i = 1; i < 200; i += 2) { 
         var rowOdd = i, rowEven = i + 1; 
         oWorksheet.GetRange("A" + rowOdd + ":S" + rowOdd).SetFillColor(Api.CreateColorFromRGB(118, 190, 39)); 
         oWorksheet.GetRange("A" + rowEven + ":S" + rowEven).SetFillColor(Api.CreateColorFromRGB(186, 56, 46)); 
     }  
})();

Вставьте приведенный выше код в окно макросов и нажмите «Выполнить». Строки таблицы от 1 до 200 будут поочередно окрашены менее чем за секунду.

Назначение макросов

В табличном редакторе вы можете назначить макрос графическому объекту:

  1. Щелкните правой кнопкой мыши графический объект.
  2. Нажмите «Назначить макрос».
  3. В появившемся окне выберите макрос. Вы можете ввести имя макроса в соответствующее поле.
  4. Нажмите кнопку ОК.

Для запуска макроса достаточно кликнуть по графическому объекту и скрипт будет выполнен.

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

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

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