Googleフォームのシートに入力されている名前のリストから、Googleスプレッドシートに新しいシートを自動的に作成して名前を付けるにはどうすればよいですか?フォームから新しい名前が追加されたときに、それぞれの新しいシートが作成されるようにします。新しいシートは同じスプレッドシートに含める必要があります。
新しい名前がフォームに追加されるたびに、これはすべて自動的に行われます。
これは 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つ使用することはできません。そのため、ある名前を複数回送信すると、シートの作成は失敗します。
参照: イベントオブジェクト 、 シートクラスメソッド 。