La selección es el contenido que tiene el foco en una página de presentación abierta, como un intervalo de texto destacado o una tabla. En esta guía, se describe cómo obtener y establecer la selección en una presentación activa con Apps Script.
Una secuencia de comandos solo puede acceder a la selección del usuario que la ejecuta.
La selección es una instantánea de lo que era cuando se inició la secuencia de comandos. Si el usuario hace clic y la selección cambia mientras se ejecuta la secuencia de comandos, esos cambios no se reflejarán.
Selecciones y tipo de selección
Lee la selección con la clase Selection. La clase tiene varios métodos para obtener los objetos seleccionados según el tipo de objeto(s) seleccionado(s).
La enumeración SelectionType
representa el tipo específico de objetos seleccionados. Por ejemplo, si el usuario seleccionó texto en una forma, el tipo de selección es TEXT. En este caso, puedes recuperar el rango de texto seleccionado con el método selection.getTextRange().
También puedes recuperar el objeto que contiene la selección. Por ejemplo, puedes recuperar la forma que contiene el texto seleccionado con selection.getPageElementRange().getPageElements()[0]. Del mismo modo, la página que contiene la forma envolvente es la página activa actual. Para recuperar esa página, usa selection.getCurrentPage().
Leer la selección
Para leer la selección, usa el Presentation.getSelection() como se muestra en el siguiente ejemplo:
Leer la página actual
Para recuperar la página actual que está viendo el usuario, usa los métodosgetSelection() y getCurrentPage() de la siguiente manera:
Ten en cuenta que la página actual puede ser cualquiera de los siguientes tipos:
La página actual puede tener uno o más objetos seleccionados, y SelectionType determina el tipo de selección.
Leer la selección según el tipo de selección
En el siguiente ejemplo, se muestra cómo puedes usar el tipo de selección para leer la selección actual de una manera adecuada para el tipo.
Leer selecciones de texto
Lee la selección de texto con el Selection.getTextRange(). Existen dos tipos de selección de texto:
- Selección de rango: Si una forma contiene el texto "Hola" y se selecciona "Ho", el rango que se muestra tiene startIndex=0 y endIndex=2.
- Selección del cursor: Si una forma contiene el texto "Hola" y el cursor está después de "H" ("H|ola"), el rango que se muestra es un rango vacío con startIndex=1 y endIndex=1.
Modificar la selección
La secuencia de comandos puede modificar la selección del usuario. Cualquier cambio de selección que la secuencia de comandos realice en la presentación se reflejará en las operaciones de selección posteriores durante la ejecución de la secuencia de comandos.
Los cambios de selección se reflejan en el navegador del usuario solo después de que se completa la ejecución de la secuencia de comandos o cuando se llama a Presentation.saveAndClose().
Seleccionar la página actual
Para seleccionar una página en la presentación activa como la página actual, llama al método selectAsCurrentPage(). Este método quita cualquier elemento de página, página o selección de texto anterior. Por lo tanto, usar este método en la página actual te permite deseleccionar cualquier selección actual en la página. Por ejemplo:
Seleccionar un elemento de página
Para seleccionar un elemento de página en una página, usa el PageElement.select(). Esto también anula la selección de cualquier elemento de página seleccionado anteriormente.
Los métodos select() y select(true) son equivalentes.
Por ejemplo:
Seleccionar varios elementos de página
Para agregar elementos de página adicionales a la selección, usa el PageElement.select(false). Todos los elementos de página deben estar en la página actual.
Transformar la selección
Las ediciones que realiza tu secuencia de comandos pueden transformar la selección actual, de modo que lo que se selecciona cambia como resultado de la edición. Por ejemplo:
- Supongamos que tienes seleccionadas dos formas A y B.
- Luego, tu secuencia de comandos quita la forma A.
- Como resultado, la selección se transforma en la edición, de modo que solo se selecciona la forma B.
En el siguiente ejemplo, se muestra cómo se puede transformar la selección manipulando los elementos de página seleccionados.
Seleccionar texto
El texto contenido en una forma o en una celda de tabla se puede seleccionar con el TextRange.select(). Si el texto está contenido en una forma, también se selecciona esa forma. Si el texto está contenido en una celda de tabla, se seleccionan esa celda de tabla y su tabla envolvente.
Esto también establece la página superior como la página actual.
Selección de rango en una forma
En el siguiente ejemplo, se muestra cómo realizar una selección de rango dentro del texto contenido en una forma.
Selección del cursor en una forma
En el siguiente ejemplo, se muestra cómo realizar una selección de cursor dentro del texto contenido en una forma.
Selección de rango en una celda de tabla
En el siguiente ejemplo, se muestra cómo realizar una selección de rango dentro del texto contenido en una celda de tabla.
Selección del cursor en TableCell
En el siguiente ejemplo, se muestra cómo realizar una selección de cursor dentro del texto contenido en una celda de tabla.
Transformación de selección con ediciones textuales
En el siguiente ejemplo, se muestra cómo se puede transformar la selección editando el texto seleccionado.
Deseleccionar
No hay métodos explícitos para anular la selección de texto o elementos de página. Sin embargo, este resultado se puede lograr con los métodos Page.selectAsCurrentPage() o pageElement.select().
Seleccionar una página actual
En el siguiente ejemplo, se muestra cómo anular la selección de cualquier selección actual en una página configurando esa página como la página actual.
Seleccionar un elemento de página
En el siguiente ejemplo, se muestra cómo anular la selección de cualquier selección actual en una página seleccionando un elemento de página y, por lo tanto, quitando todos los demás elementos de la selección.