web-dev-qa-db-ja.com

Googleフォームから入力された名前からGoogleシートに新しいシートを自動作成して名前を付ける

Googleフォームのシートに入力されている名前のリストから、Googleスプレッドシートに新しいシートを自動的に作成して名前を付けるにはどうすればよいですか?フォームから新しい名前が追加されたときに、それぞれの新しいシートが作成されるようにします。新しいシートは同じスプレッドシートに含める必要があります。

新しい名前がフォームに追加されるたびに、これはすべて自動的に行われます。

4
fb.junks

これは script で実行できます。 [ツール]の下にある[スクリプトエディター]に次を入力します。 [名前]を、使用するフォームフィールドの名前に変更します。

function formSheet(e) {
  var sheetName = e.namedValues['Name'][0];
  var sheet = SpreadsheetApp.getActiveSpreadsheet().insertSheet(sheetName);
  sheet.getRange(1, 1, 1, e.values.length).setValues([e.values]);
}

次に、メニューの「リソース->現在のプロジェクトのトリガー」を使用してトリガーを設定します。 「スプレッドシートから」、「フォーム送信で」である必要があります。

また、この関数は、送信された値を新しいシートの最初の行にコピーします。

注:同じ名前のシートを2つ使用することはできません。そのため、ある名前を複数回送信すると、シートの作成は失敗します。

参照: イベントオブジェクトシートクラスメソッド

4
user79865