[GAS]Googleフォームの解答欄にあらかじめ答えを入れておく

アンケート調査や申し込み手続きで回答を入力してもらうのに、Googleフォームは非常に有用だ。スプレッドシートに回答を転写してくれるので、入力された値を集計したり、入力値をもとに何かスクリプトを走らせることもできる。スプレッドシートのGASには、わざわざフォームから送信されたとき用のトリガが用意されている。

フォームを利用者の入力インターフェースにして、スプレッドシートのデータを使って条件分岐したいときに、予め一部の回答が入力された状態のフォームに利用者を誘導したい。

実はけっこう簡単にできる。フォームの回答画面はURLの最後がviewformになっているので、この後ろに?で
解答欄のID=予め入力したい回答
をつけてやればよい。
解答欄のIDを確認する簡単な方法は、Chromeでフォームの回答画面を表示(プレビューでいい)して、解答欄のIDを確認したいテキストボックスなどを右クリックする。次いで検証を押すと画面右側にカラムが表示される。ハイライトされている部分からnameを探す。一般のテキストボックスだとname=”entry.数値”となっている。この “entry.数値” が解答欄のIDである。
nameが描いてある場所がわからない場合は、検証のカラムでCtrl + Fを押してentry.を検索することを勧める。inputタグの中に入っているので、<inputで始まるのも目印になる。

(フォームのURL)/viewform?entry.1234=hoge
というアドレスにアクセスすると、解答欄のIDが entry.1234 である場所に予めhogeと書かれた状態で始まる。
複数の解答欄に予め回答を入れておくには&でつないでいけばいい。
(フォームのURL)/viewform?entry.1234=hoge&entry.5678=fuga

アドレスを加工すればフォームの初期値を指定できることを応用すれば、スプレッドシートのHYPERLINK関数を使って、初期値を入れたフォームへのリンクを張れる。
スプレッドシートの文字列を結合するとき&を使うことを思い出せば、A1セルの値がhogeである場合、ほかのセルに以下のように入力すれば、上で述べた例と同じくnameがentry.1234である解答欄に回答hogeを初期値として設定できる。
=HYPERLINK(” (フォームのURL)/viewform?entry.1234= “&A1,”スプレッドシートに表示される文字列”)
さらに、A2セルにfugaという文字列が入っている場合、上で述べた複数の解答欄に予め回答を入れておく場合を次のように表現することができる。
=HYPERLINK(” (フォームのURL)/viewform?entry.1234= “&A1&”&entry.5678=”&A2,”スプレッドシートに表示される文字列”)

参考
GOOGLEフォームの初期値

これもFormのGASで設定できないものだろうか。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください