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

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

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

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

Q&A

2回答

2142閲覧

GAS スプレッドシート フォームからインプットされたデータをシートの名前変更に反映させる関数を教えてください。

退会済みユーザー

退会済みユーザー

総合スコア0

Google Apps Script

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

0グッド

1クリップ

投稿2018/01/16 09:37

編集2018/01/17 00:50

GAS スプレッドシート フォームからインプットされたデータをシートの名前変更に反映させる関数を教えてください。

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

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

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

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

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

guest

回答2

0

質問のやりたいことは、下記のスクリプトで実行できます。
(スプレッドシートに付属するスクリプトで試してください)

どうか、このスクリプトを貰ったで済まさず、
途中途中のログをみながら、どのコードが何をしているのか読み解いて
これをGoogleAppsScriptの勉強のきっかけにしてください。

たとえば「google script スプレッドシート タブの名前 変更」で
Google検索すると、先人が教えてくれるサイトがHitします。
私もそうやってスクリプトの知識を1つ1つ増やしてきたのです。
(javascriptについての知識ほとんどなしでgoogle apps scriptを勉強し始めたのは半年前くらいからですので)

function myFunction() { var Sp = SpreadsheetApp.getActiveSpreadsheet();//変数宣言の上、アクティブスプレッドシート指定でオブジェクト代入 var Sh = Sp.getActiveSheet();//変数宣言の上、アクティブシートオブジェクト代入 var nameData = [];//配列変数の宣言 var lastRow = Sh.getLastRow();//データの入っている最終行数の取得 Logger.log('最終行数:' + lastRow);//ログ出力(表示→ログにて実行後見られる) for (var i = 0 ; i<lastRow ; i++){//行数分繰り返し処理 Logger.log('A' + (i+1) + 'の内容:' + Sh.getRange(i+1, 1).getValue()) nameData.push(Sh.getRange(i+1, 1).getValue());//配列nameDataにセル値を押し込む;:(i+1,1)=iが1のときはB1を表す } Logger.log('セルデータ取得配列:' + nameData); var sheets = Sp.getSheets().length; //シートタブの既存数を取得 Logger.log('実行前シート数:' + sheets); if (lastRow > sheets){//シート数よりデータ行数が多いかどうか判定 for (i = 0 ; i < lastRow - sheets ;i++){//不足シート分繰り返し処理 Sp.insertSheet();//行数に不足するシートを追加作成 } } for (var i = 0 ; i < lastRow ; i++){//行数分繰り返し処理 Logger.log('変更前' + (i) + '番目のタブ名:' + Sp.getSheets()[i].getName()); Sp.getSheets()[i].setName(nameData[i]);//配列nameDataのi番目を取り出し、i番目のタブ名にセット Logger.log('変更後' + (i) + '番目のタブ名:' + Sp.getSheets()[i].getName()); } }

投稿2018/02/07 05:07

編集2018/02/07 09:55
jinshan

総合スコア107

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

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

Zuishin

2018/02/07 05:19

さすがにネイティブの方は言い方が優しい。
jinshan

2018/02/07 05:36

Zuishinさん。失礼しました。 以前、質問やりとりの最中に質問者が退会されてしまった案件で、日本語の意味がお互い通じていない+日本人には怒られている感じがする言葉のやりとりをお見かけしたもので。 Zuishinさんはコードを作成検証済だったことと思いますが、質問者の方に勉強を始めるきっかけも必要だと思い、横から割り込んで回答させていただきました。
Zuishin

2018/02/07 05:39

どうぞ。しかしここまで言ったからには最後まで面倒みてあげてください。できますかね?
Zuishin

2018/02/07 05:58

少し補足をしておきますが、私は初心者とは学習を始めたばかりの者、つまり知識と技術を高めるために研鑽をしている者のことだと思っています。 そして私はこの人を初心者とは思っていません。 いくら何でもこれだけ時間をかけてセルの値を読み取ることすらできないなんてことが真面目にやってる人にあり得るはずがありません。 あなたはこれに懲りて二度と来ないであろうクレクレくんに期待を抱かせました。 その責任はしっかり取ってください。
jinshan

2018/02/07 06:12

責任とりませんよ。質問に回答するのもしないのも私の自由です。あなたに指示される筋合いはありません。あなたが初心者と判断しなかったこの人を私は初心者、又はそれ以前に至っていないと判断したにすぎません。半年前に情報システム全般やスクリプトを扱ったことのない私が同じ立場だったからです。ごく簡単なコードを掲載してあげて、次の段階の勉強の仕方を教えてあげて、質問者の方が自力で勉強しはじめない方でしたらそこで終了です。そのことを含めて質問回答としましたので。これ以上はやりとり無用です。
Zuishin

2018/02/07 06:13

でしょうね。 で・しょ・う・ね。
jinshan

2018/02/07 09:54

Zuishinさん、私があなたがネイティブでないと誤認してしまったのは次のコメントです。「2018/01/07 22:22 すみません。まったく理解できないので日本語勉強してきます。そもそも配列のポストに成功しているのかとか色々と確かめることがあったんですが、無理そうなのでエスパーに任せます。」どうやら皮肉でお書きになったものと今、理解しました。ネイティブでない発言については謝罪し、削除編集します。
Zuishin

2018/02/07 10:12

ああ、また何か喧嘩を売られたのかと思ったらそうではなかったのですね。 こちらこそややこしいことを言いました。
guest

0

ファームというのはフォームでしょうか。
シートの名前を設定(変更)する

投稿2018/01/16 09:41

Zuishin

総合スコア28660

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

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

退会済みユーザー

退会済みユーザー

2018/01/17 00:47

ご回答ありがとうございます。 まず、誤入力があり申しわけございません。 おっしゃる通りフォームです。 ご回答いただきながら大変申し訳ないのですが、 例えばa1に入力されたデータをシート1の名前にしたい場合はどのようにコードを書けば良いのでしょうか? 初歩的なことがわかっておらず申し訳ございません。 お時間がございましたらよろしくお願い申し上げます。
Zuishin

2018/01/17 01:00

a1 はフォームではなくセルではありませんか? 具体的な手順はこうです。 1 a1 の値を取り出して Logger.Log() するスクリプトを試作する。 2 アクティブシートの名前を取り出して Logger.Log() するスクリプトを試作する。 3 アクティブシートの名前を適当な名前に変更するスクリプトを試作する。 4 a1 の値を取り出してアクティブシートの名前を変更するスクリプトを作る。 5 a1 を書き換えた時に上記スクリプトが動くようトリガーを設定する。 以上です。 どの段階で引っかかっているのでしょうか?
Zuishin

2018/01/17 01:17

やってみましたが、トリガーを作らなくても onEdit(event) 関数を作ればいいみたいでした。
退会済みユーザー

退会済みユーザー

2018/02/02 17:50

ご回答ありがとうございます。 JavaScriptはわからないので、もう少し詳しく教えていただけますでしょうか? 環境といたしましてはa列に入力されたデータをそれぞれのシート名にしたいです。 a1=シート1 a2=シート2 a3=シート3 と言うように お忙しいところ恐れ入ります。 どうぞよろしくお願い申し上げます。
Zuishin

2018/02/02 21:53

手動でシート名変更できますのでそれをお勧めします。 さすがに何一つできないのにプログラミングは無理だと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問