0

スプレッドシートのフォームに記入するユーザーの名前で、Google スプレッドシートに新しいシートを作成するスクリプトがあります。

新しいユーザーがこのスプレッドシートに関連付けられたフォームに入力するたびに、このスクリプトがトリガーされるようにしたいと思います。もちろん、新しいユーザーとは、新しい電子メール アドレスがスプレッドシートの自動生成された [ユーザー名] 列に追加されることを意味します。

これは現在私のコードです:

function MakeSheet() { 
var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var sheet = ss.getSheetByName("default sheet"); 
var getEmail = Browser.inputBox("user Email: "); 
var s1 = ss.getSheetByName("list of users and emails"); 
var index = s1.getRange(1,1,s1.getLastRow(),1).getValues(); 
var values = s1.getRange(1,2,s1.getLastRow(),1).getValues(); 
nextIndex: for( var i in index) { if( index[i][0] == getEmail ) { var getName =   values[i][0];continue nextIndex;}}

ss.setActiveSheet(ss.getSheetByName("default sheet"));
SpreadsheetApp.getActiveSpreadsheet().duplicateActiveSheet();
ss.setActiveSheet(ss.getSheetByName("Copy of default sheet"));
SpreadsheetApp.getActiveSpreadsheet().renameActiveSheet(getName);
SpreadsheetApp.getActiveSheet().getRange('B3').setValue(getEmail);
SpreadsheetApp.getActiveSheet().getRange('C3').setValue(getName);

}
4

1 に答える 1

0

解決策は、フォームの送信時にトリガーを設定することです。トリガー機能では、ユーザーが「新規ユーザー」かどうかを確認できます。ところで、メール アドレスを取得する方法がわかりません。Google Apps ユーザーであるか、メール アドレスを明示的に尋ねる必要があります。

于 2012-08-01T11:51:51.083 に答える