Теперь, когда вы знаете, как работают макросы, попробуйте написать свой собственный макрос. У нас есть таблица, и нам нужно «закрасить» чередующиеся строки таблицы (нечетные будут окрашены в зеленый цвет, четные станут красными). Таблица содержит 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. Нажмите кнопку ОК.

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