概要
Google Apps Script(GAS)を用いてGoogleForms内における「回答に応じてセクションを移動」を指定できます.
該当の文献・実装例が少ないので備忘録として残しておきます.
方法
const target_item_num = 2; //フォーム全体の中で,設定したい質問が何番目か
const form = FormApp.openByUrl("フォームのURL");
const form_items = form.getItems();
const section_2 = form.getItems(FormApp.ItemType.PAGE_BREAK)[0].asPageBreakItem(), // 2つ目のセクション(PAGE_BREAKで取得すると,セクション2=[0], セクション3=[1])
let choices = []; //選択肢一覧
choices.push(form_items[target_item_num].asListItem().createChoice("セクション2に移動する選択肢", section_2)); //対象の質問に対する選択肢を追加
form_items[target_item_num].asListItem().setChoices(choices); //作成した選択肢をフォームに反映
-
フォームのURL
とtarget_item_num
,セクション2に移動する選択肢
を編集してください. -
target_item_num
はフォーム内での質問のインデックス番号です.(下の画像だと「金額」=[0])
インデックス番号が不明な場合は,以下のコードで番号とタイトル一覧を確認できます.function show_items(){ const form = FormApp.openByUrl("フォームのURL"); const form_items = form.getItems(); let i = 0; form_items.forEach((item)=>{ console.log(`${i++}: ${item.getTitle()}`) } ) }
補足
予測変換やWeb検索,ChatGPTの回答ではcreateChoice("chice title", GO_TO_PAGE)
という提案がされるかもしれません.
しかし,GoogleForms APIのドキュメントをよく見ると,特定のセクションに移動するには第二引数にPageBreakItem
型を指定する必要があります.