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.
Кроме того, вы можете создавать макросы в редакторе сценариев приложений, выполнив следующие действия:
- В пользовательском интерфейсе GGoogle Sheets выберите Extensions > Apps Script , чтобы открыть скрипт, привязанный к листу, в редакторе AApps Script.
- Напишите функцию макроса. Макро-функции не должны принимать аргументов и возвращать значения.
- Отредактируйте манифест сценария , чтобы создать макрос и связать его с функцией макроса. Назначьте ему уникальное сочетание клавиш и имя.
- Сохраните проект скрипта. После этого макрос доступен для использования на листе.
- Протестируйте функцию макроса на листе, чтобы убедиться, что она работает должным образом.
Редактирование макросов
Вы можете редактировать макросы, прикрепленные к листу, выполнив следующие действия:
- В пользовательском интерфейсе Google Таблиц выберите «Расширения» > «Макросы» > «Управление макросами» .
- Найдите макрос, который хотите изменить, и выберите > Редактировать макрос . Это открывает редактор сценариев приложений для файла проекта, содержащего функцию макроса.
- Отредактируйте функцию макроса, чтобы изменить поведение макроса.
- Сохраните проект скрипта. После этого макрос доступен для использования на листе.
- Протестируйте функцию макроса на листе, чтобы убедиться, что она работает должным образом.
Импорт функций в виде макросов
Если к листу уже привязан скрипт, вы можете импортировать функцию в скрипт как новый макрос, а затем назначить ей сочетание клавиш. Вы можете сделать это, отредактировав файл манифеста и добавив еще один элемент в свойствоsheets.macros sheets.macros[]
.
Кроме того, выполните следующие действия, чтобы импортировать функцию в виде макроса из пользовательского интерфейса Таблиц:
- В пользовательском интерфейсе Google Таблиц выберите «Расширения» > «Макросы» > «Импорт» .
- Выберите функцию из представленного списка и нажмите кнопку Добавить функцию .
- Выберите , чтобы закрыть диалоговое окно.
- Выберите Расширения > Макросы > Управление макросами .
- Найдите в списке функцию, которую вы только что импортировали. Назначьте макросу уникальное сочетание клавиш. Вы также можете изменить имя макроса здесь; имя по умолчанию равно имени функции.
- Щелкните Обновить , чтобы сохранить конфигурацию макроса.
Структура манифеста для макросов
В следующем фрагменте примера файла манифеста показан раздел манифеста , определяющий макросы 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 рекомендуется придерживаться следующих рекомендаций.
- Макросы более эффективны, когда они легкие. По возможности ограничьте количество действий, выполняемых макросом.
- Макросы лучше всего подходят для механических операций, которые необходимо часто повторять с минимальной настройкой или без нее. Для других операций рассмотрите возможность использования пользовательского пункта меню .
- Всегда помните, что сочетания клавиш для макросов должны быть уникальными, и на данном листе одновременно может быть только десять макросов с сочетаниями клавиш. Любые дополнительные макросы можно запустить только из меню «Расширения» > «Макросы» .
- Макросы, которые вносят изменения в одну ячейку, можно применить к диапазону ячеек, сначала выбрав весь диапазон, а затем активировав макрос. Это означает, что часто нет необходимости создавать макросы, дублирующие одну и ту же операцию в предварительно определенном диапазоне ячеек.
Вещи, которые вы не можете сделать
Есть несколько ограничений на то, что вы можете делать с макросами:
Используйте макросы вне связанных скриптов
Макросы определяются в сценариях, привязанных к определенным таблицам Google. Определения макросов игнорируются, если они определены в автономном скрипте или веб-приложении .
Определение макросов в надстройках для Таблиц
Вы не можете распространять определения макросов с помощью надстройки Таблиц . Любые определения макросов в проекте надстройки Таблиц игнорируются пользователями этой надстройки.
Распространяйте макросы в библиотеках скриптов
Вы не можете распространять определения макросов с помощью библиотек сценариев приложений.
Используйте макросы вне Google Таблиц
Макросы — это функция только в Google Sheets, их нет в Google Docs, Forms или Slides.