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

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

Обновлено: 06.10.24


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

  1. Откройте редакторы Р7 и создайте новую таблицу.
  2. Теперь откройте вкладку «Плагины» и выберите «Макросы». Появится окно макросов.
  3. Щелкните Создать. Вам будет представлена базовая функция-обертка, которая позволит вам ввести необходимый код:
  4. (function() 
    { 
    // ... your code goes here ... 
    })();
    
    
  5. Давайте обратимся к документации 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. Нажмите кнопку ОК.

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