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

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

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

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

Q&A

解決済

1回答

1643閲覧

グーグルフォームからGSSに転記する際に、数字の列が自動で、3桁区切りの数字に変換されてしまう。

tokuninaidesu

総合スコア13

Google Apps Script

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

0グッド

0クリップ

投稿2021/06/15 08:12

前提・実現したいこと

グーグルフォームに
1234,2222,3333
のように、数字4桁をコンマ区切りで入力してもらう項目を作っていて、
それを、
GSSに反映、そのGSSからその4桁の数字を配列として処理しようとしています。

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

form送信後、GSSをみると、そのセルには123,422,223,333のように3桁区切りで表示され、
その後の、配列の処理ができないです。

該当のソースコード

GSSのスクリプトエディタでは、
let numbers = e.namedValues['数字'][0];
のように、値を取得しています。

試したこと

・GSSの表示形式\数字から書式なしテキストに設定する。
→これだと、書式が反映されない。
理由:フォーム回答は回答の度に行が追加されるので、手動で書式設定しても新しい回答に適応されない。

・フォームのスクリプトエディタで書式を

sh.getRange(2,11,sh.getMaxRows(),1).setNumberFormat('@');
のようにセットする。
→これだと、3桁区切りになったあとに書式なしに設定されるので意味がありませんでした。

その他

フォームからエクセルに挿入される際の書式を設定する方法はないでしょうか。
宜しくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

数字にカンマを入れるとどうしても三桁区切りの書式になってしまいますね。
3つ方法を考えてみました。

①シートの表示を修正する方法
この方法であれば”-”区切りになるので、splitで配列にしやすいと思います。

sh.getRange(2,11,sh.getMaxRows(),1).setNumberFormat('0000-0000-0000');

②シートの書式はほっておき、配列を作成する方法

GoogleAppsScript

1 let numbers = e.namedValues['数字'][0]; 2 let str = String(numbers).replace(/,/g,''); 3 let ary = [str.substr(0,4),str.substr(4,4),str.substr(8,4)]; 4 sheet.getRange("D5").setValue(ary.join("-"));//D5は例示

③入力形式自体を変える方法
最初から「-」で区切って送信してもらったり、区切りなしの入力にしてもらう方法です。

投稿2021/06/15 21:00

gas.engine

総合スコア608

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

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

tokuninaidesu

2021/07/08 10:49

丁寧な回答ありがとうございます。回避策を色々提示していただき助かりました。 >数字にカンマを入れるとどうしても三桁区切りの書式になってしまいますね。 これはよく知られたことなんですね。 ②の回避策で対応しました。 ①のsetNumberFormatで0000-0000-0000 というような書式設定方法はあまり検索しても見つけられず、 参考になりました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問