Макросы Google Таблиц

Google Sheets позволяет вам записывать макросы , которые дублируют определенную серию взаимодействий с пользовательским интерфейсом, которые вы определяете. После того, как вы записали макрос, вы можете связать его с сочетанием клавиш в виде Ctrl+Alt+Shift+Number . Вы можете использовать этот ярлык для быстрого повторного выполнения тех же шагов макроса, как правило, в другом месте или с другими данными. Вы также можете активировать макрос в меню «Расширения Google Таблиц» > «Макросы» .

Когда вы записываете макрос, Google Sheets автоматически создает функцию скрипта приложений ( функция макроса ), которая повторяет шаги макроса. Функция макроса добавляется в проект Apps Script , связанный с листом, в файле с именем macros.gs . Если к листу с таким именем уже привязан файл проекта, к нему добавляется функция макроса. Google Таблицы также автоматически обновляют манифест проекта сценария, записывая имя и сочетание клавиш, назначенное макросу.

Поскольку каждый записанный макрос полностью определяется в Apps Script, вы можете редактировать их непосредственно в редакторе Apps Script. Вы даже можете писать макросы с нуля в Apps Script или брать уже написанные функции и превращать их в макросы.

Создание макросов в Apps Script

Вы можете взять функции, написанные на Apps Script, и использовать их в качестве макрофункций. Самый простой способ сделать это — импортировать существующую функцию из редактора Google Sheets.

Кроме того, вы можете создавать макросы в редакторе сценариев приложений, выполнив следующие действия:

  1. В пользовательском интерфейсе GGoogle Sheets выберите Extensions > Apps Script , чтобы открыть скрипт, привязанный к листу, в редакторе AApps Script.
  2. Напишите функцию макроса. Макро-функции не должны принимать аргументов и возвращать значения.
  3. Отредактируйте манифест сценария , чтобы создать макрос и связать его с функцией макроса. Назначьте ему уникальное сочетание клавиш и имя.
  4. Сохраните проект скрипта. После этого макрос доступен для использования на листе.
  5. Протестируйте функцию макроса на листе, чтобы убедиться, что она работает должным образом.

Редактирование макросов

Вы можете редактировать макросы, прикрепленные к листу, выполнив следующие действия:

  1. В пользовательском интерфейсе Google Таблиц выберите «Расширения» > «Макросы» > «Управление макросами» .
  2. Найдите макрос, который хотите изменить, и выберите > Редактировать макрос . Это открывает редактор сценариев приложений для файла проекта, содержащего функцию макроса.
  3. Отредактируйте функцию макроса, чтобы изменить поведение макроса.
  4. Сохраните проект скрипта. После этого макрос доступен для использования на листе.
  5. Протестируйте функцию макроса на листе, чтобы убедиться, что она работает должным образом.

Импорт функций в виде макросов

Если к листу уже привязан скрипт, вы можете импортировать функцию в скрипт как новый макрос, а затем назначить ей сочетание клавиш. Вы можете сделать это, отредактировав файл манифеста и добавив еще один элемент в свойствоsheets.macros sheets.macros[] .

Кроме того, выполните следующие действия, чтобы импортировать функцию в виде макроса из пользовательского интерфейса Таблиц:

  1. В пользовательском интерфейсе Google Таблиц выберите «Расширения» > «Макросы» > «Импорт» .
  2. Выберите функцию из представленного списка и нажмите кнопку Добавить функцию .
  3. Выберите , чтобы закрыть диалоговое окно.
  4. Выберите Расширения > Макросы > Управление макросами .
  5. Найдите в списке функцию, которую вы только что импортировали. Назначьте макросу уникальное сочетание клавиш. Вы также можете изменить имя макроса здесь; имя по умолчанию равно имени функции.
  6. Щелкните Обновить , чтобы сохранить конфигурацию макроса.

Структура манифеста для макросов

В следующем фрагменте примера файла манифеста показан раздел манифеста , определяющий макросы Google Sheets. Раздел sheets манифеста определяет имя и сочетание клавиш, назначенное макросу, а также имя функции макроса.

  {
    ...
    "sheets": {
      "macros": [{
        "menuName": "QuickRowSum",
        "functionName": "calculateRowSum",
        "defaultShortcut": "Ctrl+Alt+Shift+1"
      }, {
        "menuName": "Headerfy",
        "functionName": "updateToHeaderStyle",
        "defaultShortcut": "Ctrl+Alt+Shift+2"
      }]
    }
  }

Дополнительные сведения о том, как создаются манифесты сценариев приложений, см. в руководстве по структуре манифеста . Разделы Sheets и Macro описывают поля, которые определяют макросы Sheets.

Лучшие практики

При создании макросов или управлении ими в Apps Script рекомендуется придерживаться следующих рекомендаций.

  1. Макросы более эффективны, когда они легкие. По возможности ограничьте количество действий, выполняемых макросом.
  2. Макросы лучше всего подходят для механических операций, которые необходимо часто повторять с минимальной настройкой или без нее. Для других операций рассмотрите возможность использования пользовательского пункта меню .
  3. Всегда помните, что сочетания клавиш для макросов должны быть уникальными, и на данном листе одновременно может быть только десять макросов с сочетаниями клавиш. Любые дополнительные макросы можно запустить только из меню «Расширения» > «Макросы» .
  4. Макросы, которые вносят изменения в одну ячейку, можно применить к диапазону ячеек, сначала выбрав весь диапазон, а затем активировав макрос. Это означает, что часто нет необходимости создавать макросы, дублирующие одну и ту же операцию в предварительно определенном диапазоне ячеек.

Вещи, которые вы не можете сделать

Есть несколько ограничений на то, что вы можете делать с макросами:

Используйте макросы вне связанных скриптов

Макросы определяются в сценариях, привязанных к определенным таблицам Google. Определения макросов игнорируются, если они определены в автономном скрипте или веб-приложении .

Определение макросов в надстройках для Таблиц

Вы не можете распространять определения макросов с помощью надстройки Таблиц . Любые определения макросов в проекте надстройки Таблиц игнорируются пользователями этой надстройки.

Распространяйте макросы в библиотеках скриптов

Вы не можете распространять определения макросов с помощью библиотек сценариев приложений.

Используйте макросы вне Google Таблиц

Макросы — это функция только в Google Sheets, их нет в Google Docs, Forms или Slides.