わかりましたので、私がしなければならないことは比較的複雑だと思います。現時点では、参加者が記入できるフォームがあります。フォームが送信されるたびに、スプレッドシート内に新しいシートが作成されることを意味するスクリプトが実装されています。その情報は、IF 関数に似たものを介して渡され、Yes と No の回答が 1 と 0 に変更されます。次のようになります。
//onFormSubmit
function onFormSubmit(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Form Responses");
var headings = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues();
var lastRow = sheet.getRange(sheet.getLastRow(), 1, 1, sheet.getLastColumn()).getValues();
var whoIsItFor = lastRow[0][1];
if(ss.getSheetByName(whoIsItFor))
{
var userSheet = ss.getSheetByName(whoIsItFor);
//if not make
}
else
{
var userSheet = ss.insertSheet(whoIsItFor);
userSheet.getRange(1, 1, 1, headings[0].length).setValues(headings);
}
// copy submitted data to user's sheet
userSheet.getRange(userSheet.getLastRow()+1, 1, 1, lastRow[0].length).setValues(lastRow);
var columns = new Array('K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ', 'BA', 'BB', 'BC', 'BD', 'BE', 'BF', 'BG', 'BH', 'BI', 'BJ', 'BK', 'BL', 'BM', 'BN', 'BO', 'BP', 'BQ', 'BR', 'BS', 'BT', 'BU', 'BV', 'BW', 'BX', 'BY', 'BZ', 'CA', 'CB', 'CC', 'CD', 'CE', 'CF', 'CG', 'CH', 'CI', 'CJ', 'CK', 'CL', 'CM');
for (var i = 0; i < columns.length; ++i)
{
c = columns[i] + "2";
if (userSheet.getRange(c).getValue() == "Yes") {
userSheet.getRange(c).setValue("1")
}
else {
userSheet.getRange(c).setValue("0")
}
}
}
今、私は次の段階を実装したいと考えています。さまざまな数式と書式設定を含む別のシートが現在のスクリプトが生成するシートに追加され、フォームから生成されたデータが数式を含むそのシートの特定の列に挿入される場合にどうしたいですか。元のスクリプトが新しいシートを生成するたびにこれが発生するようにします。さまざまな数式と書式設定を含むシートは、同じスプレッドシート内に含まれています。
これが理にかなっているといいのですが.....どうもありがとうございました