「選択」とは、開いているプレゼンテーション ページでフォーカスされているコンテンツ(ハイライト表示されたテキストの範囲や表など)を指します。 このガイドでは、Apps Script を使用して、アクティブなプレゼンテーションで選択を取得して設定する方法について説明します。
スクリプトは、スクリプトを実行しているユーザーの選択にのみアクセスできます。
選択は、スクリプトの開始時のスナップショットです。スクリプトの実行中にユーザーがクリックして選択内容が変更されても、その変更は反映されません。
選択と選択タイプ
選択内容を読み取るには、 Selection クラスを使用します。このクラスには、選択したオブジェクトのタイプに基づいて選択したオブジェクトを取得するさまざまなメソッドがあります。
SelectionType 列挙型
は、選択したオブジェクトの特定のタイプを表します。たとえば、ユーザーが図形内のテキストを選択した場合、選択タイプは
TEXT になります。この場合、selection.getTextRange() メソッドを使用して、選択したテキストの範囲を取得できます。
選択内容を含むオブジェクトを取得することもできます。たとえば、selection.getPageElementRange().getPageElements()[0]
を使用して、選択したテキストを含む図形を取得できます。同様に、囲み図形を含むページは現在のアクティブ
ページです。そのページを取得するには、selection.getCurrentPage() を使用します。
選択内容を読み取る
選択内容を読み取るには、次の例に示すように、 Presentation.getSelection() メソッドを使用します。
現在のページを読み取る
ユーザーが表示している現在のページを取得するには、次のように getSelection() メソッドと getCurrentPage() メソッドを使用します。
現在のページは、次のいずれかのタイプになります。
現在のページでは 1 つ以上のオブジェクトを選択できます。選択タイプによって選択のタイプが決まります。
選択タイプに基づいて選択内容を読み取る
次の例は、選択タイプを使用して、タイプに適した方法で現在の選択内容を読み取る方法を示しています。
テキストの選択内容を読み取る
テキストの選択内容を読み取るには、 Selection.getTextRange() メソッドを使用します。テキストの選択には次の 2 種類があります。
- 範囲選択: 図形に「Hello」というテキストが含まれていて、「He」が 選択されている場合、返される範囲の startIndex は 0、endIndex は 2 になります。
- カーソル選択: 図形に「Hello」というテキストが含まれていて、カーソルが 「H」の後ろにある場合(「H|ello」)、返される範囲は空の範囲で、 startIndex は 1、endIndex は 1 になります。
選択内容を変更する
スクリプトはユーザーの選択内容を変更できます。 スクリプトがプレゼンテーションに対して行う選択の変更は、スクリプトの実行中、後続の選択操作に反映されます。
選択の変更は、スクリプトの実行が完了したとき、または Presentation.saveAndClose() が呼び出されたときにのみ、ユーザーのブラウザに反映されます。
現在のページを選択する
アクティブなプレゼンテーションのページは、 the selectAsCurrentPage() メソッドを呼び出すことで、現在のページとして選択できます。このメソッドは、以前のページ要素、ページ、テキストの選択をすべて削除します。そのため、現在のページでこのメソッドを使用すると、ページ上の現在の選択を解除できます。次に例を示します。
ページ要素を選択する
ページ内のページ要素を選択するには、 PageElement.select() メソッドを使用します。 これにより、以前に選択したページ要素も選択解除されます。
select() メソッドと select(true) メソッドは同等です。
次に例を示します。
複数のページ要素を選択する
選択にページ要素を追加するには、 PageElement.select(false) メソッドを使用します。 すべてのページ要素が現在のページに存在する必要があります。
選択内容を変換する
スクリプトが実行する編集によって、現在の選択内容が変換されるため、編集の結果として選択内容が変更されます。 次に例を示します。
- 2 つの図形 A と B が選択されているとします。
- 次に、スクリプトが図形 A を削除します。
- その結果、選択内容が編集に対して変換され、図形 B のみが選択されます。
次の例は、選択したページ要素を操作することで選択内容を変換する方法を示しています。
テキストを選択
図形または表のセルに含まれるテキストは、 TextRange.select() メソッドを使用して選択できます。テキストが図形に含まれている場合は、その図形も選択されます。テキストが表のセルに含まれている場合は、その表のセルとその囲み表の両方が選択されます。
これにより、親ページが現在のページとして設定されます。
図形内の範囲選択
次の例は、図形に含まれるテキスト内で範囲選択を行う方法を示しています。
図形内のカーソル選択
次の例は、図形に含まれるテキスト内でカーソル選択を行う方法を示しています。
表のセル内の範囲選択
次の例は、表のセルに含まれるテキスト内で範囲選択を行う方法を示しています。
TableCell のカーソル選択
次の例は、表のセルに含まれるテキスト内でカーソル選択を行う方法を示しています。
テキスト編集による選択の変換
次の例は、選択したテキストを編集することで選択内容を変換する方法を示しています。
選択を解除
テキストやページ要素の選択を解除する明示的なメソッドはありません。ただし、Page.selectAsCurrentPage() メソッドまたは pageElement.select() メソッドを使用すると、この結果を得ることができます。
現在のページを選択する
次の例は、ページを現在のページとして設定することで、ページ上の現在の選択を解除する方法を示しています。
ページ要素を選択する
次の例は、1 つのページ要素を選択して、ページ上の現在の選択を解除し、選択から他のすべてのアイテムを削除する方法を示しています。