実現したいこと
まず初めに、私はGASは初心者の為、説明不足な点や見当違いな箇所があれば申し訳ございません。
ご指摘いただけますと幸いです。
また、教えていただく際にコードを記載していただけると助かります。
出来れば教わった内容をそのまま使うだけでなく、自分なりにアレンジを加えたり内容を調整したい為
ここでなんの処理をしているかなどもコード内に記載していただけるとより助かります。
実現したいこととして
様々な文章の特定の単語の色付けを、GoogleスプレッドシートのAppsScriptを使って効率化したいです。
①、セルA1に文章を挿入
②、Apps Scriptを実行
③、設定した条件に沿ってセルA1の文章に色がつく
このような流れができる事を期待しております。
条件としては現時点では下記のような内容を想定しております。
- "〇"から始まる行はその行全体を青色に変更する。(〇を含む先頭から改行するまでの文字列)
- "・"から始まっていて、上の行に"注意"の単語が含まれている場合、行全体を赤色に変更する。
- "・"から始まっていて、上の行も赤色の場合、行全体を赤色に変更する。(元文章は全て黒字の為、上記で変更した赤色を参照している前提の為、処理順的に難しければ他の条件を考えたい)
- "1時間"の文字を赤色に変更する。(これは行ではなく「1時間」だけが赤くなって欲しい)
- "00:00"などの、時間を表す文字を赤色に変更する。
あくまで、現時点ではなので応用が利きやすいコードであればより嬉しいです。
発生している問題・分からないこと
現時点で困っている部分は下記になります。
1.特定の文字列を参照して、行全体の色を変更するスクリプトの書き方
※〇〇から始まる行の~といった条件指定が上手くいきません
2.複数の条件を指定する方法
3.if関数のように、この場合はこう、この場合はこう、といったスクリプトの書き方
該当のソースコード
function changeTextColor() { // 対象のスプレッドシートを取得 var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); // 対象のシートを取得 var sheet = spreadsheet.getSheetByName("シート1"); // 変更したい文字列が含まれるセルを取得 var cell = sheet.getRange("A1"); // セルの値を取得 var cellValue = cell.getValue(); // richTextBuilderを使って、特定の文字列の色を変更 var richTextBuilder = SpreadsheetApp.newRichTextValue() .setText(cellValue) // この部分のスクリプトを変更したいが、変更の仕方が分からない .setTextStyle(0, 5, SpreadsheetApp.newTextStyle().setForegroundColor("blue").build()) .build(); // 変更したrichTextを再度セルに設定 cell.setRichTextValue(richTextBuilder); }
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
AIやGoogle検索などを使い初心者ながらスクリプトを書いています。
セル全体ではなく、セルの中身の一部を変更する場合は「setRichText」でないとダメなようなので
現在はこれを使ってなんとかならないかと考えております。
補足
特になし
![guest](/img/icon/icnUserSample.jpg)
回答2件
あなたの回答
tips
プレビュー