Googleフォームを使って入力項目を選択させたい場面ってありますよね。ただ、項目が多かったり、項目が変更されることがあったりする場合、直接フォームに項目を入力するのは手間がかかります。そこで、スプレッドシートを活用して項目を管理し、簡単に選択項目を作成できる方法があるんです。
本記事では、スプレッドシートで入力項目を管理し、それをGoogleフォームの選択項目として表示させる方法を詳しく解説します。これにより、フォームのメンテナンスをスムーズに行いながら、ユーザーに使いやすい選択項目を提供することができます。
さあ、手順を追ってみましょう!
Googleフォームの設定
Googleアプリをクリックし、Google Formsを選択してください。

新しいフォームを作成をクリックしてください。

フォームのタイトルとフォームの説明を変更してください。

ラジオボタンからプルダウンに変更してください。

スプレッドシートの準備
スプレッドシートを開きます。

スプレッドシートにプルダウンで選択させたい項目を入力してください。シートの名前はリストにしておきます。ここでは徳川将軍を入力しました。

スクリプトエディターでの設定
スプレッドシートでツールからスクリプトエディターをクリックしてください。

スクリプトエディタに下記のコードをコピーしてください。
function myFunction() {
}
function pulldownNameList() {
//スプレッドシートのID「https://docs.google.com/spreadsheets/d/◇◇◇/edit#gid=0」の◇◇◇を次の行の◇◇◇にコピーしてください
var sheets = SpreadsheetApp.openById('◇◇◇').getSheets();
var sheet = sheets[0];
if("氏名" == sheet.getRange("A1").getValue()){
var colA = sheet.getRange(2, 1, sheet.getLastRow() - 1).getValues();
}
// GoogleフォームのIDの「https://docs.google.com/forms/d/□□□/edit」の□□□を次の行の□□□にコピーしてください
var form = FormApp.openById('□□□');
var items = form.getItems(FormApp.ItemType.LIST);
items.forEach(function(item){
if(item.getTitle().match(/氏名.*$/)){
var listItemQuestion = item.asListItem();
var choices = [];
colA.forEach(function(name){
if(name != ""){
choices.push(listItemQuestion.createChoice(name));
}
});
listItemQuestion.setChoices(choices);
}
});
}
スプレッドシートのIDとGoogleフォームのIDは間違わないように注意してください。
保存したら、関数のpulldownNameListを選択して実行します。
①のところをクリックして保存して、②のプルダウンでpulldownNameListをクリックしてください。その後③の実行をクリックしてください。

最後にGoogleフォームの右上にあるプレビューをクリックして正しくプルダウンのリストが出るか確認してください。

うまく表示されればできあがりです。
送信をクリックして、メールやリンクをコピーして回答させる方へ送ってください。
追加です。
スプレッドシートの内容を自動的に変更させるために、トリガーを設定することができます。
まず、左側にあるトリガーのアイコンをクリックしましょう。
次に、「新しいトリガーを作成します。」というオプションをクリックします。
それから、実行する関数を選択し、イベントのソースとしてスプレッドシートを選びます。また、イベントの種類として「編集時」を選択し、変更を保存します。


コメント