3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

概要

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);  //作成した選択肢をフォームに反映
  1. フォームのURLtarget_item_num, セクション2に移動する選択肢を編集してください.
  2. target_item_numはフォーム内での質問のインデックス番号です.(下の画像だと「金額」=[0])
    Screenshot 2024-08-05 at 11.13.59.png
    インデックス番号が不明な場合は,以下のコードで番号とタイトル一覧を確認できます.
    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型を指定する必要があります.

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?