はじめに
Google Formsでアンケートを配布する際に、事前にいくつかの項目を入力済みにしておきたいということは、往々にしてある。
例えば、以下の画像のようなアンケートが本社から、支部の事務に届いた際、アンケートURLを支部内で再配布することになるのだが、再配布する相手は全員同じ勤務地である。そこで、1つ目の勤務地選択については、こちらで入力済のURLを再配布するほうが、間違いも少なく、良いと考えられる。
もちろん、アンケートの編集権限があれば、以下のようにメニューから事前入力したURLを発行できるものの、編集権限がない場合はどうすればいいのだろうか。
解決方法
そもそも、事前入力したURLというのは、https://docs.google.com/forms/d/e/〇〇〇〇〇〇〇〇〇〇〇〇〇/viewform?entry.136176518=神戸本社
のようにフォーム自体のURLの後ろに、URLクエリパラメータとして、「entry.」から始まる質問の識別番号と、その答えが書かれている。つまり、識別番号さえわかれば、編集権限がなくとも、自由に事前入力したフォームのURLを生成できる。
この識別番号であるが、開発者ツールで確認すると、data-params
属性の中に普通に書かれている。これをURLクエリパラメータとして入力しておくことで、事前入力済みのフォームのURLを生成できる。
なお、以下のコードは、「****」の部分に、何番目の質問(0始まりに注意)か数値を入力して利用するJavascriptのコードである。開発者ツールを開き、数値を入力した上で、コピペ&実行すると、識別番号を表示してくれる。
Array.from(document.querySelectorAll("[role=listitem]")[****].querySelectorAll("[data-params]")).forEach(e=>console.log(JSON.parse("["+e.getAttribute("data-params").slice(4))[0][4][0][0]))
参考文献
大変、参考になった文献。