Выделение — это то, что в данный момент выделено на открытой странице презентации, например, выделенный фрагмент текста или таблица. В этом руководстве рассказывается, как получить и установить выделение в активной презентации с помощью Apps Script.
Выделение представляет собой моментальный снимок того, что было на момент запуска скрипта. Если пользователь щёлкнет мышью и выделение изменится во время выполнения скрипта, эти изменения не будут отражены.
Выбор и тип выбора
Вы можете прочитать выбранные объекты с помощью класса Selection . Этот класс предоставляет различные методы для получения выбранных объектов в зависимости от их типа.
Перечисление SelectionType представляет собой конкретный тип выделенных объектов. Например, если пользователь выделил текст в фигуре, тип выделения будет TEXT . В этом случае выделенный фрагмент текста можно получить с помощью метода selection.getTextRange()
.
Вы также можете получить объект, содержащий выделенный фрагмент; продолжая пример выше, вы можете получить фигуру, содержащую выделенный текст, с помощью selection.getPageElementRange().getPageElements()[0]
. Аналогично, страница, содержащая охватывающую её фигуру, является текущей активной страницей; чтобы получить эту страницу, используйте selection.getCurrentPage()
.
Чтение отрывка
Чтобы прочитать выделение, используйте метод Presentation.getSelection(), как показано в следующем примере:
Чтение текущей страницы
Чтобы получить текущую страницу , которую просматривает пользователь, используйте методы getSelection() и getCurrentPage() следующим образом:
Обратите внимание, что текущая страница может быть любого из следующих типов:
На текущей странице может быть выбран один или несколько объектов, а SelectionType определяет тип выбора.
Чтение выборки на основе типа выборки
В следующем примере показано, как можно использовать тип выделения для чтения текущего выделения соответствующим типу способом.
Чтение отрывков текста
Вы можете прочитать выделенный текст с помощью метода Selection.getTextRange() . Существует два типа выделения текста:
- Выбор диапазона : если фигура содержит текст «Привет» и выбрано «Он», возвращаемый диапазон будет иметь startIndex=0 и endIndex=2.
- Выбор курсора : если фигура содержит текст «Hello», а курсор находится после «H» («H|ello»), возвращаемый диапазон будет пустым с startIndex=1 и endIndex=1.
Изменение выбора
Скрипт может изменить выбор пользователя. Любые изменения, вносимые скриптом в презентацию, отражаются в последующих операциях выбора на протяжении всего выполнения скрипта.
Изменения выбора отражаются в браузере пользователя только после завершения выполнения скрипта или при вызове Presentation.saveAndClose()
.
Выбор текущей страницы
Страницу в активной презентации можно выбрать в качестве текущей, вызвав метод selectAsCurrentPage() . Этот метод удаляет все предыдущие выделения элементов страницы, страниц или текста. Таким образом, применение этого метода на текущей странице позволяет отменить любые текущие выделения на странице. Например:
Выбор элемента страницы
Чтобы выбрать элемент страницы, используйте метод PageElement.select() . Это также отменяет выбор всех ранее выбранных элементов страницы.
Например:
Выбор нескольких элементов страницы
Чтобы добавить дополнительные элементы страницы к выбранным, используйте метод PageElement.select(false) . Все элементы страницы должны находиться на текущей странице.
Трансформация выбора
Изменения, выполняемые вашим скриптом, могут преобразовать текущий выделенный фрагмент, так что выделенный фрагмент изменится в результате редактирования. Например:
- Предположим, у вас выбраны две фигуры A и B.
- Далее ваш скрипт удаляет фигуру А.
- В результате выделение преобразуется в соответствии с редактированием, так что выделяется только фигура B.
В следующем примере показано, как можно преобразовать выборку, манипулируя выбранными элементами страницы.
Выделение текста
Текст, содержащийся в фигуре или ячейке таблицы, можно выделить с помощью метода TextRange.select() . Если текст содержится в фигуре, то эта фигура также выделяется. Если текст содержится в ячейке таблицы, то выделяются как эта ячейка, так и содержащая её таблица.
Это также устанавливает родительскую страницу в качестве текущей страницы.
Выбор диапазона в форме
В следующем примере показано, как сделать выбор диапазона внутри текста, содержащегося в фигуре.
Выбор курсора в форме
В следующем примере показано, как сделать выделение курсором внутри текста, содержащегося в фигуре.
Выбор диапазона в ячейке таблицы
В следующем примере показано, как сделать выбор диапазона в тексте, содержащемся в ячейке таблицы.
Выбор курсора в TableCell
В следующем примере показано, как сделать выделение курсором внутри текста, содержащегося в ячейке таблицы.
Преобразование выделения с текстовым редактированием
В следующем примере показано, как можно преобразовать выделение путем редактирования выделенного текста.
Отмена выбора
Явных методов для отмены выделения текста или элементов страницы нет. Однако этого результата можно добиться с помощью методов Page.selectAsCurrentPage()
или pageElement.select()
.
Выберите текущую страницу
В следующем примере показано, как отменить выбор текущих элементов на странице, сделав эту страницу текущей.
Выберите элемент страницы
В следующем примере показано, как отменить выбор любого текущего элемента на странице, выбрав один элемент страницы и тем самым удалив все остальные элементы из выбора.