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

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