このようにA列に値を入力したシートがあって
A列の2行目以降の値をフォームの特定の質問の選択肢に入れたい
事前準備
- 項目を読み込ませたい質問のIDを取得しておく
- シートのA列の2行目以降に読み込ませたい値を入れておく
以下のコード.gsで設定する箇所
- itemId:項目を入れたいフォームの質問のID
- ss_url:A列に項目用の値が入っているスプレッドシートのURL
コード.gs
var itemId = フォームの質問のID;
var ss_url = "https://docs.google.com/spreadsheets/d/SPREADSHEET_ID/edit#gid=0";
function setChoicesFromSheet() {
var sheet = returnSheet(ss_url);
var values = getValuesFromSheet(sheet);
setChoiceValues(itemId, values);
}
function returnSheet(ss_url) {
var ss = SpreadsheetApp.openByUrl(ss_url);
var sh_id = ss_url.split("gid=")[1];
var shs = ss.getSheets();
for (var i = 0; i < shs.length; i++) {
if (shs[i].getSheetId() == sh_id) {
break;
}
}
var sheet = ss.getSheets()[i];
return sheet;
}
function getValuesFromSheet(sheet) {
var lastRow = sheet.getLastRow();
var range = sheet.getRange(2, 1, lastRow-1, 1);
var values = range.getValues();
var choices = [];
for(var i = 0; i < values.length; i++) {
choices.push(values[i][0]);
}
return choices;
}
function setChoiceValues(itemId, values) {
var form = FormApp.getActiveForm();
var item = form.getItemById(itemId);
var choices = item.asMultipleChoiceItem().setChoiceValues(values);
}
|
itemId と ss_url を設定して
setChoicesFromSheet()
を実行すると
フォームの質問の選択肢がシートの値に書き換えられます
関連記事
Google Formの質問項目を取得する
Google Formで質問の選択肢の値を取得したい
Google Formの質問の選択肢をコードで書き換えたい

