前提・実現したいこと
ここに質問の内容を詳しく書いてください。
GASでスプレッドシートの語句のリストと一致した
ドキュメントの文字列の背景色を変更するシステムを作っています。
機能を実装中に以下のエラーメッセージが発生しました。
また,一致した文字列だけではなく,ドキュメント全体の背景色を変更してしまいます。
どうすれば,一致した文字列のみを変更できるでしょうか。
発生している問題・エラーメッセージ
TypeError: Text は関数ではありません。object です。
該当のソースコード
GAS
1 function test() { 2 var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); //1. 現在のスプレッドシートを取得 3 var sheet = spreadsheet.getActiveSheet(); //2. 現在のシートを取得 4 var range = sheet.getRange("B3"); //3. 指定するセルの範囲(A1)を取得 5 var value = range.getValue(); //4. 値を取得する 6 7 var document = DocumentApp.openByUrl(value); //取得したURLを開く 8 var body = document.getBody(); //本文を取得 9 var text = body.getText(); 10 var asText = body.asText(); 11 12 var sheet2 = spreadsheet.getSheetByName("シート2"); 13 var range2 = sheet2.getRange("A1"); 14 var str = range2.getValue(); 15 var match = new RegExp(text.match(str), 'gm'); 16 var pos = 0; 17 var posN = 0; 18 while ((arr = match.exec(text)) !== null) { 19 Logger.log(arr); 20 posN = body.asText().getText().indexOf(str, pos); 21 if (posN !== -1) { 22 asText.setBackgroundColor("#FFFF00")(posN, posN + str.length - 1, true); 23 } 24 pos = match.lastIndex; 25 } 26}
試したこと
setBoldはできます。
setForegroundColorは一致したところだけではなく全体の文字色が変更されてしまいました。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/07 02:47