您可以使用 TextRange
類型表示的「文字範圍」編輯文字及設定文字樣式。TextRange
代表形狀或表格儲存格中的文字區段。對形狀或表格儲存格呼叫 getText()
會傳回涵蓋整個文字的文字範圍。
如果您使用的方法會編輯形狀中的文字配合效果,則套用至形狀的任何自動調整設定都會停用。
使用文字範圍
文字範圍有兩個索引,用於分隔文字範圍所涵蓋的文字區段:「起始索引」和「結束索引」。您可以使用 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
,並且顏色設為紅色。
讀取樣式時,如果範圍具有多個樣式的值,則函式會傳回空值。因此,上述範例會產生下列記錄陳述式:
Text: Hello; Bold: false Text: world!; Bold: true Text: Hello world!; Bold: null
您還可以將多種樣式套用至文字。詳情請參閱 TextStyle
參考說明文件。
段落樣式
段落樣式會套用至整個段落,而且包括文字對齊和行距等。TextRange
中的 getParagraphStyle() 函式提供 ParagraphStyle
物件,可用於設定與父項文字範圍重疊的所有段落樣式。
以下範例會在第一張投影片中建立含有四個段落的文字方塊,然後將前三個段落置中對齊。
清單樣式
與 ParagraphStyle
類似,ListStyle
可用於設定與父項文字範圍重疊的所有段落樣式。
上述範例在第一張投影片中建立文字方塊,其中包含四個段落:第二個段落已縮排一次,第三個段落則縮排兩次。然後對所有段落套用預設清單。最後,系統會記錄每個段落的巢狀層級。(段落的巢狀層級來自於段落文字前的定位點數量)。因此,上述指令碼會產生下列記錄陳述式:
Paragraph 1's nesting level: 0 Paragraph 2's nesting level: 1 Paragraph 3's nesting level: 2 Paragraph 4's nesting level: 0