以下の 画像のような形で セル内の部分的な太字や文字色を維持したまま、セル内のテキストの後ろに文字を追加したいと思っています。
手動でやる場合は、パソコンからセルをダブルクリックし、文字を貼り付ける(または記入する)か、
正規表現で文末を置換する方法などあり、どちらもマクロの記録を試してみましたが、欲しいコードが得られませんでした。
以下のサイトを参考にコードを作成しましたが、リッチテキストの書式が消えてしまいます。
(テキストをいじらない単純コピーなら リッチテキストは保持される)
Googleドキュメントの body.replaceText() のようなことが出来ればよいのですが、良い方法ありましたらご教授ください。
「出来ない」なら出来ないと教えていただければ助かります。
参考
https://caymezon.com/gas-richtext/
GAS
1function richcopy(){ 2 const sheet = SpreadsheetApp.getActiveSheet(); 3 const Range = sheet.getRange("A1"); 4 5 //追加するテキスト 6 const Addtext = sheet.getRange("A2").getValue(); 7 8 //リッチテキストを取得 9 const richtext = Range.getRichTextValue(); 10 11 //これだとログが出ない 12 console.log(richtext); 13 14 const basetext = Range.getRichTextValue().getText(); 15 16 //改行し 追加テキストを後ろに加える 17 const newtext = basetext + "\n" + Addtext ; 18 19 console.log(newtext); 20 21 const TargetRange = sheet.getRange("C1"); 22 23 //ここが richtext.copy().build(); だとA1が書式維持されるのだが・・・ 24 const newrichtext = richtext.copy().setText(newtext).build(); 25 26 TargetRange.setRichTextValue(newrichtext); 27 28}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/08 03:46
2020/07/08 04:11