Google Formsを使って、条件分岐やGoogle Apps Script(GAS)を駆使して、ユーザーの入力に基づいてプルダウン項目を動的に変更する方法について解説します。具体的には、ユーザーが入力した生年月日から年齢を計算し、その年齢に基づいて表示される選択肢を変える方法を紹介します。
Google Formsの条件分岐機能とは
Google Formsには「条件分岐」機能があり、ユーザーの回答に応じて次に表示される質問を制御することができます。例えば、質問の選択肢に基づいて次の質問を動的に変更することができ、特定の条件に合致した選択肢だけを表示させることができます。
しかし、この機能ではプルダウン項目自体を動的に変化させることはできません。ここで必要になるのが、Google Apps Script(GAS)です。
Google Apps Scriptを使用した動的なプルダウン項目の変更
Google Apps Scriptを使うことで、Google Formsでの動的な項目の変更が可能になります。特に、生年月日から年齢を計算し、その年齢を元にプルダウン項目を変更するという処理は、スクリプトを用いることで実現できます。
以下の流れでスクリプトを設定することができます。
- 1. ユーザーの生年月日を取得する:生年月日を入力してもらうフォーム項目を作成し、ユーザーが入力した値を取得します。
- 2. 年齢を計算する:生年月日から年齢を計算するために、Google Apps Scriptの「Date」オブジェクトを使用します。
- 3. 年齢に基づいて選択肢を変更する:年齢を基に、プルダウンメニューの表示内容をスクリプトで動的に制御します。
Google Apps Scriptのサンプルコード
以下は、生年月日から年齢を計算し、それに基づいてプルダウン項目を変更するためのサンプルコードです。
function onFormSubmit(e) { var form = FormApp.openById('フォームID'); var responses = e.response.getItemResponses(); var dob = responses[0].getResponse(); // 生年月日を取得 var age = calculateAge(dob); // 年齢を計算 var dropdownItem = form.getItems(FormApp.ItemType.LIST)[0].asListItem(); // プルダウン項目を取得 if (age >= 18) { dropdownItem.setChoiceValues(['成人', '未成年']); } else { dropdownItem.setChoiceValues(['未成年']); } } function calculateAge(dob) { var today = new Date(); var birthDate = new Date(dob); var age = today.getFullYear() - birthDate.getFullYear(); var m = today.getMonth() - birthDate.getMonth(); if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) { age--; } return age; }
まとめ
Google Formsでプルダウン項目を動的に変更するには、条件分岐機能を使用するだけではなく、Google Apps Scriptを駆使することで、ユーザーの入力に基づいて柔軟に対応できます。特に生年月日から年齢を計算し、その年齢に応じて表示項目を変更することも可能です。
もしこの方法を試してもうまくいかない場合、スクリプトのエラーを確認したり、Google Formsの設定を見直したりすることをお勧めします。スクリプトを正しく設定すれば、より動的なアンケート作成が可能になります。
コメント