takeda_san’s blog

KotlinとVRを頑張っていく方向。

あらかじめ任意の値を埋め込んだアンケートフォームを量産しよう

きっかけ

Google Formsで複数の社外の方からアンケートを取っています。
回答後にフォームに入力してもらった社名とお名前をキーにして、社内のデータと突合。
結果を集計します。

ここで困るのが、社名とお名前が手入力なので、よく表記ゆれが起こるということ。
今回は社名とお名前をキーに社内データと結合しているので、集計に影響大いにあり、これは大問題。

あらかじめフォーム側に、社名とお名前などキーになる値をを埋め込んでおければ、表記ゆれがなくなって問題が解決できそうです。

f:id:takeda_san:20201024151044p:plain

こんな感じをURLを開いた時点で表示できるイメージ。
ですが、個別に設定していくのは非常に骨の折れる作業です。

今回はそんなお話です。

どのように実現するか

Google Formsには 事前入力したURLを取得 という機能があって、デフォルト値をGETパラメータとして渡せます。
ということは、パラメータを差し替えれば個別の社名とお名前を渡せそうです。

テンプレのURLを手に入れよう

こんな感じで編集画面からメニュー 事前入力したURLを取得 を選択。

f:id:takeda_san:20201024155119p:plain

初期値を入れて、リンクを取得するとこんなURLが取れます。

f:id:takeda_san:20201024155314p:plain

実際にURLに遷移してみると、ちゃんとフォームに初期値が設定されていることがわかると思います。

[Form URL]/viewform?entry.1915892522=%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BEtakeda_san&entry.189897915=takeda_san&entry.191975624=%E9%81%B8%E6%8A%9E%E8%82%A21

URLを詳しく見てみると・・・
ここが会社名(株式会社takeda_san)のパラメータっぽいですね。

entry.1915892522=%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BEtakeda_san

こっちが、お名前のパラメータ。

entry.189897915=takeda_san

ちょっとパラメータを書き換えて実験してみましょう。

Google Forms URL/viewform?entry.1915892522=takeda_chan_Inc.&entry.189897915=takeda_chan

f:id:takeda_san:20201024160015p:plain

パラメータを差し替えることで、初期値をコントロールできそうです。

フォームURLを量産しよう

パラメータの部分を差し替えるには、どうしたらいいでしょうか。
フォーム送付先の会社名とお名前のリストがスプレッドシートにあるなら、そこで数式を駆使してURLを作れそうです。

こんなデータがある前提で以降進めます。

f:id:takeda_san:20201024161038p:plain

今回生成するのはWebのURLなので、エンコードしておく必要があります。 ENCODEURL関数で変換してからパラメータを埋め込みましょう。

Google Forms URL/viewform?entry.1915892522="& ENCODEURL(A2) &"&entry.189897915="& ENCODEURL(B2)

こんな感じの仕上がりになります。

f:id:takeda_san:20201024162014p:plain

f:id:takeda_san:20201024162034p:plain

回答の収集

スプレッドシートを関連付けておけば、初期値は違えど、フォームとしては1つなのでまとめて集計されます。
うまくできましたね。

f:id:takeda_san:20201024162309p:plain

そもそもの話

そもそも、自分でつくらなくても、要件はKintoneとフォームブリッジで達成できますね。
めちゃくちゃ高機能ですし。

fb.kintoneapp.com

作らなくて済むならそれが良い。