GASによるGoogleフォームの内容(選択肢)の修正方法をご教示下さい
以下のサイトに掲載された方法でGASによりGoogleフォームを作成する方法を覚えました。
https://tonari-it.com/gas-form-generate-choices/
次のステップとして、フォームの選択肢(リンクの例でいえば都道府県名)をスプレッドシートの内容を基に増減させる方法を模索しています。
リンクにあったプログラムのとおりに作成したプログラム(結果的にクリップ&ペースト)を貼らせて頂きます
このプログラムのままだと作動させる都度「新規作成」してしまうので、選択肢(都道府県名)を自動的にスプレッドシートと連携して反映させるプログラムを作れたらと思っています
現在のアイディアとして、このプログラムを作動させる度に「新規作成(保存)」ではなく、「上書き保存」(GoogleフォームのID「"abcdefghijklmnopqrstu"」)するプログラムを作成することができれば、同じ効果が得られのではないかと、考えておりますが、
その方法も皆目見当がつかずにおります
この辺のところをご教示頂けると幸いです
どうぞ、よろしくお願いします
【以下、関連するサイトから見つけて応用したいプログラム】
function createEventForm(){
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet()
var values = spreadsheet.getSheetByName('イベント概要').getDataRange().getValues();
var dataValues = spreadsheet.getSheetByName('項目データ').getDataRange().getValues();
var osValues = generateArray(dataValues, 0); //OS
var langValues = generateArray(dataValues, 1); //プログラム言語
var prefValues = generateArray(dataValues, 2); //都道府県
var formTitle = values[0][1]; //タイトル
var formDescription = values[1][1]; //概要
var form = FormApp.create(formTitle);
var FOLDER_ID = PropertiesService.getScriptProperties().getProperty('FOLDER_ID');
var formFile = DriveApp.getFileById(form.getId());
DriveApp.getFolderById(FOLDER_ID).addFile(formFile);
DriveApp.getRootFolder().removeFile(formFile);
form.setDescription(formDescription);
form.addTextItem().setTitle('氏名').setRequired(true);
form.addTextItem().setTitle('会社名');
var validationEmail = FormApp.createTextValidation().requireTextIsEmail().build();
form.addTextItem().setTitle('メールアドレス').setRequired(true).setValidation(validationEmail);
form.addMultipleChoiceItem()
.setTitle('お持ちのPCのOSは?')
.setChoiceValues(osValues)
.setRequired(true);
form.addCheckboxItem()
.setTitle('興味があるプログラム言語は?')
.setChoiceValues(langValues)
.showOtherOption(true);
// .setRequired(true);
form.addListItem()
.setTitle('お住まいの都道府県は?')
.setChoiceValues(prefValues)
.setRequired(true);
}