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

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

ただいまの
回答率

90.52%

  • Google Apps Script

    842questions

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

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

受付中

回答 2

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 488
退会済みユーザー

退会済みユーザー

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

0

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/01/17 09:47

    ご回答ありがとうございます。
    まず、誤入力があり申しわけございません。
    おっしゃる通りフォームです。

    ご回答いただきながら大変申し訳ないのですが、
    例えばa1に入力されたデータをシート1の名前にしたい場合はどのようにコードを書けば良いのでしょうか?

    初歩的なことがわかっておらず申し訳ございません。

    お時間がございましたらよろしくお願い申し上げます。

    キャンセル

  • 2018/01/17 10:00

    a1 はフォームではなくセルではありませんか?
    具体的な手順はこうです。

    1 a1 の値を取り出して Logger.Log() するスクリプトを試作する。
    2 アクティブシートの名前を取り出して Logger.Log() するスクリプトを試作する。
    3 アクティブシートの名前を適当な名前に変更するスクリプトを試作する。
    4 a1 の値を取り出してアクティブシートの名前を変更するスクリプトを作る。
    5 a1 を書き換えた時に上記スクリプトが動くようトリガーを設定する。

    以上です。
    どの段階で引っかかっているのでしょうか?

    キャンセル

  • 2018/01/17 10:17

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

    キャンセル

  • 2018/02/03 02:50

    ご回答ありがとうございます。
    JavaScriptはわからないので、もう少し詳しく教えていただけますでしょうか?

    環境といたしましてはa列に入力されたデータをそれぞれのシート名にしたいです。
    a1=シート1
    a2=シート2
    a3=シート3

    と言うように

    お忙しいところ恐れ入ります。

    どうぞよろしくお願い申し上げます。

    キャンセル

  • 2018/02/03 06:53

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

    キャンセル

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 14:19

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

    キャンセル

  • 2018/02/07 14:36

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

    キャンセル

  • 2018/02/07 14:39

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

    キャンセル

  • 2018/02/07 14:58

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

    キャンセル

  • 2018/02/07 15:12

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

    キャンセル

  • 2018/02/07 15:13

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

    キャンセル

  • 2018/02/07 18:54

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

    キャンセル

  • 2018/02/07 19:12

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

    キャンセル

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

  • ただいまの回答率 90.52%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Google Apps Script

    842questions

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