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