Написание собственных макросов

Теперь, когда вы знаете, как работают макросы, давайте попробуем написать собственный макрос. К примеру, у нас есть таблица, в которой нужно раскрасить строки в разные цвета: нечётные строки в зелёный, а чётные в красный. В таблице 200 строк (если делать всё вручную, это займёт немало времени) и столбцы от A до S.

  1. Откройте десктопные редакторы и создайте новую таблицу.
  2. Откройте плагины и выберите Макросы. Откроется окно макросов.
  3. Нажмите Создать. Создастся базовый шаблон функции, в который можно вставить нужный код:
    (function()
    {
        // ... ваш код здесь ...
    })();
  4. Что нужно для выполнения нашей задачи:
    • Сначала нужно получить текущий лист с помощью метода 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 будут раскрашены в разные цвета менее чем за секунду.