テキストの編集とスタイル設定には、テキスト範囲を使用します。これは
TextRange型で表されます。TextRange は、図形内または表のセル内のテキストのセグメントを表します。図形または表のセルで getText を呼び出すと、テキスト全体をカバーするテキスト範囲が返されます。
図形内のテキストの配置方法を編集するメソッドを使用すると、図形に適用されている自動調整の設定は無効になります。
テキスト範囲を使用する
テキスト範囲には、テキスト範囲でカバーされるテキストのセグメントを区切る 2 つのインデックス( 開始インデックス と 終了インデックス )があります。これらのインデックスは、getStartIndex 関数と getEndIndex 関数を使用して決定します。
テキスト範囲の開始インデックスは含まれ、終了インデックスは含まれません。どちらのインデックスもゼロベースです。
テキスト範囲の内容を読み取るには、asString 関数または asRenderedString 関数を使用します。
テキスト範囲内からサブ範囲を取得するには、getRange 関数を使用します。
次のスクリプトは、最初のスライドにテキスト ボックスを作成し、テキスト コンテンツを「Hello world!」に設定します。次に、「Hello」だけを含むサブ範囲を取得します。
図形または表のセルから返されるテキスト範囲は、テキストが挿入または削除された場合でも、常にテキスト全体をカバーします。そのため、この例では次のログステートメントが生成されます。
Start: 0; End: 13; Content: Hello world!
Start: 0; End: 5; Content: Hello
テキストを挿入、削除する
テキスト範囲を使用して、図形や表のセルにテキストを挿入したり、削除したりできます。
insertTextとappendTextを使用すると、テキストを挿入できます。setTextは、テキスト範囲のテキストを指定されたテキストに置き換えます。clearは、テキスト範囲内のテキストを削除します。
次のスクリプトは、これらの関数の使用方法を示しています。
このスクリプトは、最初のスライドにテキスト ボックスを作成し、テキスト コンテンツを「Hello world!」に設定します。次に、6 ~ 11 文字目(「world」)を削除し、代わりにインデックス 6 にテキスト「galaxy」を挿入します。この例では、次のログステートメントが生成されます。
Start: 0; End: 14; Content: Hello galaxy!
検索と置換
プレゼンテーションまたはページで replaceAllText 関数を使用して、プレゼンテーション全体または特定のページでグローバルな検索と置換を行います。
TextRange の find 関数は、範囲内の文字列のインスタンスを返します。setText と組み合わせて、図形または表のセル内で検索と置換を行うことができます。
段落、リスト項目、実行
TextRange には、テキスト エンティティの有用なコレクションを返す関数が用意されています。
これらの関数には次のようなものがあります。
getParagraphs,。テキスト範囲と重複するすべての段落を提供します。段落は、改行文字「\n」で終わるテキストのシーケンスです。getListParagraphs,。現在のテキスト範囲のリスト項目を返します。getRuns,。現在のテキスト範囲と重複するテキスト実行を提供します。テキスト実行とは、すべての文字が同じテキスト スタイルを持つテキストのセグメントです。
テキストのスタイル設定
テキスト スタイルは、フォント、色、ハイパーリンクなど、プレゼンテーション内のテキスト文字のレンダリングを決定します。
テキスト範囲の getTextStyle 関数は、テキストのスタイル設定に使用される TextStyle オブジェクト
を提供します。TextStyle オブジェクトは、親の TextRange と同じテキストをカバーします。
上記の例では、まず最初のスライドにテキスト ボックスを作成し、コンテンツを「Hello 」に設定します。次に、テキスト「world!」を追加します。新しく追加されたテキストは太字になり、www.example.com にリンクされ、色が赤に設定されます。
スタイルを読み取るときに、範囲にスタイルの複数の値がある場合、関数は null を返します。そのため、このサンプルでは次のログステートメントが生成されます。
Text: Hello; Bold: false
Text: world!; Bold: true
Text: Hello world!; Bold: null
テキストに適用できるスタイルは他にもたくさんあります。詳細については、TextStyle のリファレンス ドキュメントをご覧ください。
段落のスタイル設定
段落スタイルは段落全体に適用され、テキストの配置や行間などが含まれます。getParagraphStyle 関数は TextRange で、親のテキスト範囲と重複するすべての段落のスタイルを設定するための
ParagraphStyle
オブジェクトを提供します。
次の例では、最初のスライドに 4 つの段落を含むテキスト ボックスを作成し、最初の 3 つの段落を中央揃えにします。
リストのスタイル設定
ParagraphStyle と同様に、ListStyle を使用して、親のテキスト範囲と重複するすべての段落のスタイルを設定できます。
上記の例では、最初のスライドに 4 つの段落を含むテキスト ボックスを作成します。2 番目の段落は 1 回インデントされ、3 番目の段落は 2 回インデントされます。次に、すべての段落にリストのプリセットを適用します。最後に、各段落のネストレベルがログに記録されます。段落のネストレベルは、段落のテキストの前のタブの数によって決まります。そのため、スクリプトは次のログステートメントを生成します。
Paragraph 1's nesting level: 0
Paragraph 2's nesting level: 1
Paragraph 3's nesting level: 2
Paragraph 4's nesting level: 0