質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

2回答

8888閲覧

Googleスプレッドシートで、特定の列全体のセル内の特定の単語だけ着色したい

chairoiusagi

総合スコア13

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

2クリップ

投稿2019/02/08 23:56

編集2019/02/09 00:07

Googleスプレッドシートで、特定の列全体のセル内の特定の単語だけ着色したい

Googleスプレッドシートで、特定の列全体のセル内の特定の単語だけ着色するGASのコードを教えて頂けますでしょうか。
よろしくお願いいたします。
抽出する単語は3つあり、全部同じ色で良いです。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

ソースコード

試したこと

条件付き書式だとセルごと色が変わってしまう。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

これでどうでしょうか

JavaScript

1function ChangeKeyWordColor() { 2 3 // 列の指定 1→A列、2→B列、3→C列・・・ 4 var col = 3; 5 6 // 色の指定 7 var color = '#ff0000'; 8 9 // キーワードの指定 10 var keywords = ['あいうえお', 'かきくけこ', 'さしすせそ']; 11 12 var sheet = SpreadsheetApp.getActiveSheet(); 13 var last_row = sheet.getLastRow(); 14 var row = 1; 15 var values = sheet.getRange(row, col, last_row).getValues(); 16 17 for (var i = 0; i < last_row; i++) { 18 19 var cell_value = values[i]; 20 var reg_test = new RegExp(keywords.join("|")); 21 22 // セルの値の中にキーワードが無ければ、スキップして次のセルへ 23 if (reg_test.test(cell_value) === false) { 24 continue; 25 } 26 27 // リッチテキストを作成して、セルのテキストを設定 28 var rich_text = SpreadsheetApp.newRichTextValue().setText(cell_value); 29 30 keywords.forEach(function (value) { 31 32 var regexp = new RegExp(value, "g"); 33 var result; 34 35 // キーワードの開始位置をグローバル検索 36 while (result = regexp.exec(cell_value)) { 37 38 var start_pos = result.index; 39 var end_pos = start_pos + value.length 40 41 // テキストスタイルを設定 42 rich_text = rich_text.setTextStyle( 43 // 開始位置、終了位置、色 44 start_pos, end_pos, SpreadsheetApp.newTextStyle().setForegroundColor(color).build() 45 ); 46 } 47 }); 48 // キーワードに色がついたテキストをセルに設定 49 sheet.getRange((i + 1), col).setRichTextValue(rich_text.build()); 50 } 51}

投稿2019/02/12 03:24

teritama

総合スコア126

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

chairoiusagi

2019/02/13 10:36

ありがとうございます! 確認してみます。
chairoiusagi

2019/02/13 10:52

出来ました〜!!! 丸投げな質問ですみません、、ありがとうございましたm(_ _)m
guest

0

過去質問:Google App Script(GAS)を用いて、Googleスプレッドシート上のセル内の一部のみの文字色変える方法のベストアンサーより引用

GoogleAppsScript で文字に色を付けるメソッドは Range.setFontColor ですが、セル単位での色変更となるため、セル内の一部文字色変更はできません。

投稿2019/02/12 01:49

papinianus

総合スコア12705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

chairoiusagi

2019/02/13 10:36

ありがとうございます! 確認してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問