#前提・実現したいこと
A列の単語が文章の中にあるかどうかを正規表現を使って調べるコードを書きました。
文章の中にA列の単語があれば、青文字になるようにしてあります。
gasでA列の括弧を取得し、spliceで括弧にバックシュラッシュを付けて置換しましたが、コードを実行すると()だけでなく、その後ろの文字も青色になってしまいます。
括弧だけを青色にしたいのですが、どうしたらいいでしょうか。
よろしくお願いします。
#該当のソースコード
function
1 var ss = SpreadsheetApp.getActiveSpreadsheet(); 2 var sheet = ss.getActiveSheet(); 3 4 var lastRow = sheet.getRange(2,1).getNextDataCell(SpreadsheetApp.Direction.DOWN).getRow(); 5 6 var range = sheet.getRange(2,1,lastRow-1,1); 7 var values = range.getValues().flat(); 8 9//A列の括弧にバックシュラッシュを付けて置換する。 10 values.splice(0,1,'\('); 11 values.splice(1,1,'\)'); 12 13 var rangeSentence = sheet.getRange("D2:G"); 14 var text = rangeSentence.getValue(); 15 16 var richText = SpreadsheetApp.newRichTextValue().setText(text); 17 18 for(var i in values){ 19 var ngWord = values[i]; 20 // Logger.log(ngWord); 21 var ngWordLength = ngWord.length; 22 var ngWord = new RegExp(ngWord,'g'); 23 var result; 24 25 26 while(result = ngWord.exec(text)){ 27 var start = result.index; 28 var end = start + ngWordLength; 29 30 var style = SpreadsheetApp.newTextStyle().setBold(true).setForegroundColor('blue').build(); 31 var NewStyleText = richText.setTextStyle(start,end,style).build(); 32 33 sheet.getRange("D2:G").setRichTextValue(NewStyleText); 34 35 } 36 } 37 38}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/04/14 04:21 編集