このように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の質問の選択肢をコードで書き換えたい