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

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

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

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

Q&A

解決済

2回答

4220閲覧

Google Apps Script 自作関数を用いたカスタム数式による条件付き書式について

azpino

総合スコア15

Google Apps Script

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

0グッド

0クリップ

投稿2018/11/17 07:46

GASで、セル内の文字列が特定のバイト数を超えると赤色にしたいと考えています。
(半角で計算したいため、バイト数を基準にしています。)

Google

1//引数の文字列のバイト数を返す関数 2function string_length_byte(str) {//2バイト文字は2として文字数をカウント 3 var len = 0; 4 str = escape(str); 5 for (var i = 0; i < str.length; i++, len++) { 6 if (str.charAt(i) == "%") { 7 if (str.charAt(++i) == "u") { 8 i += 3; 9 len++; 10 } 11 i++; 12 } 13 } 14 Logger.log(len); 15 return len; 16}

上記のような関数を自作し、特定のセルに
=string_length_byte(A1)>100
などと記載した際には、想定通りの動作をし、TRUE or FALSEで出力されるのですが
画像のように設定した場合は動作していないようでした。
イメージ説明

特定のバイト数を超えたセルの背景色を変更するには、どうすればよいでしょうか?

ご教授いただけると幸いです。
よろしくお願いいたします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

カスタム数式では自作関数を使えないようです。
Conditional formatting in Google Sheets: Can I use custom function in the 'custom formula is:' field?

LENBはサポートされていないので、こういう書き方になります。

=LEN(C3)+LEN(REGEXREPLACE(C3,"[[:ascii:]]+",""))>174

もうひとつの方法。
CHAR(HEX2DEC("FDFD"))を終端文字としています。(﷽)
もし、セル内に終端文字が存在する場合は、終端文字を置き換える必要があります。

=FINDB(CHAR(HEX2DEC("FDFD")),C3&CHAR(HEX2DEC("FDFD")))-1>174

投稿2018/11/17 10:08

編集2018/11/18 22:00
shozi3

総合スコア691

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

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

0

ご回答ありがとうございます。

特に終端文字についてはたどり着ける気がしないです。。。

詳しく教えてくださり、本当にありがとうございますm(_ _)m

投稿2018/11/18 03:51

azpino

総合スコア15

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

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

shozi3

2018/11/18 22:07

解決したようで良かったです。 改行を考慮していなかったので、回答のコードを修正しました。(print → ascii) あと、お礼は回答ではなくコメントで投稿したほうがよろしいかと。
azpino

2018/11/20 11:00

ありがとうございますm(._.)m そうですよね???? 次から気をつけます。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問