Google Formを新規作成して
質問1にラジオボタンの選択肢を2つ
質問2に記述式の質問を配置した
こんなフォームがあるとして
質問に回答して送信後
その回答した内容をログに出してみる
ということをやった時のコードです
このリンクから新規Google Formを作成できます
https://docs.google.com/forms/create
スクリプトエディタを開く方法は
こちら
以下のようなコードを書いて
get_item_responsesを実行すると
上のようなログが出ます
これまでに送信されたすべての回答を取得したい場合
オブジェクトでこのように取得したい場合
(※作られるオブジェクトの中身の順番は実行順であるとは限らない)
obj{
1234 = [質問内容1, 回答内容1],
5678 = [質問内容2, 回答内容2]
}
送信時にeで受け取りたい場合
送信時ではなくスクリプトエディタで実行して取得したい場合
オブジェクトでこのように取得したい場合
obj{
1234= {
question: 質問1,
answer: 回答1
},
5678= {
question: 質問2,
answer: 回答2
}
}
送信時にeで受け取りたい場合
送信時ではなくスクリプトエディタで実行して取得したい場合
送信者のEmailアドレスも取得したい場合
フォームの設定で「メールアドレスを収集する」にチェックを入れておく
送信時にeで受け取りたい場合
送信時ではなくスクリプトエディタで実行して取得したい場合
質問1にラジオボタンの選択肢を2つ
質問2に記述式の質問を配置した
こんなフォームがあるとして
質問に回答して送信後
その回答した内容をログに出してみる
このリンクから新規Google Formを作成できます
https://docs.google.com/forms/create
スクリプトエディタを開く方法は
こちら
以下のようなコードを書いて
get_item_responsesを実行すると
上のようなログが出ます
コード.gsfunction get_item_responses(e) {
FormApp.getActiveForm();
var itemResponses = e.response.getItemResponses();
var result = [];
for (var i = 0; i < itemResponses.length; i++) {
var itemResponse = itemResponses[i];
var question = itemResponse.getItem().getTitle();
var answer = itemResponse.getResponse();
result.push([question, answer]);
}
Logger.log(result);
}
| 意訳.gs実行する機能を定義する フォームを取得する 回答を取得して 回答を入れるresulという入れ物を用意して 回答の内容の数(=質問の数)だけ以下を繰り返す 回答をひとつずつ取得して Title(=質問内容)を取得し 回答した内容を取得し resultに入れる それらを配列に入れてログに出す |
これまでに送信されたすべての回答を取得したい場合
コード.gsfunction get_form_responses() {
var form = FormApp.getActiveForm();
var formResponses = form.getResponses();
var all_result = [];
for (var i = 0; i < formResponses.length; i++) {
var itemResponses = formResponses[i].getItemResponses();
var item_result = [];
for (var j = 0; j < itemResponses.length; j++) {
var itemResponse = itemResponses[j];
var question = itemResponse.getItem().getTitle();
var answer = itemResponse.getResponse();
item_result.push([question, answer]);
}
all_result.push(item_result);
}
Logger.log(all_result);
}
| 意訳.gs実行する機能を定義する 現在編集しているフォームを取得して すべての回答を取得して フォームに回答されたすべての結果(今回以前もすべて)を入れる入れ物を用意して これまでに回答された数だけ以下を繰り返す これまでに送信された回答を順番に取得する 回答結果を入れる入れ物を用意して 質問の数だけ以下を繰り返す 回答を順番に取得して 回答のTitle(=質問内容)を取得し 回答の内容を取得し それらをitem_resultに入れて all_resultにitem_resultを入れて all_resultをログに出す |
おまけ
オブジェクトでこのように取得したい場合
(※作られるオブジェクトの中身の順番は実行順であるとは限らない)
obj{
1234 = [質問内容1, 回答内容1],
5678 = [質問内容2, 回答内容2]
}
送信時にeで受け取りたい場合
コード.gsfunction get_item_responses(e) {
FormApp.getActiveForm();
var itemResponses = e.response.getItemResponses();
var obj = {};
for (var i = 0; i < itemResponses.length; i++) {
var itemResponse = itemResponses[i];
var item_id = itemResponse.getItem().getId();
var question = itemResponse.getItem().getTitle();
var answer = itemResponse.getResponse();
obj[item_id] = [question, answer];
}
Logger.log(obj);
}
|
送信時ではなくスクリプトエディタで実行して取得したい場合
コード.gsfunction get_latest_response() {
var form = FormApp.getActiveForm();
var formResponses = form.getResponses();
var len = formResponses.length;
var formResponse = formResponses[(len-1)];
var itemResponses = formResponse.getItemResponses();
var obj = {};
for (var i = 0; i < itemResponses.length; i++) {
var itemResponse = itemResponses[i];
var question = itemResponse.getItem().getTitle();
var answer = itemResponse.getResponse();
var item_id = itemResponse.getItem().getId();
obj[item_id] = [question, answer];
}
Logger.log(obj);
}
|
おまけ2
オブジェクトでこのように取得したい場合
obj{
1234= {
question: 質問1,
answer: 回答1
},
5678= {
question: 質問2,
answer: 回答2
}
}
送信時にeで受け取りたい場合
コード.gsfunction get_item_responses(e) {
FormApp.getActiveForm();
var itemResponses = e.response.getItemResponses();
var obj = {};
for (var i = 0; i < itemResponses.length; i++) {
var text = {};
var itemResponse = itemResponses[i];
var item_id = itemResponse.getItem().getId();
var question = itemResponse.getItem().getTitle();
var answer = itemResponse.getResponse();
text["question"] = question;
text["answer"]= answer;
obj[item_id] = text;
}
Logger.log(obj);
}
|
送信時ではなくスクリプトエディタで実行して取得したい場合
コード.gsfunction get_latest_response() {
var form = FormApp.getActiveForm();
var formResponses = form.getResponses();
var len = formResponses.length;
var formResponse = formResponses[(len-1)];
var itemResponses = formResponse.getItemResponses();
var obj = {};
for (var i = 0; i < itemResponses.length; i++) {
var text = {};
var itemResponse = itemResponses[i];
var question = itemResponse.getItem().getTitle();
var answer = itemResponse.getResponse();
var item_id = itemResponse.getItem().getId();
text["question"] = question;
text["answer"]= answer;
obj[item_id] = text;
}
Logger.log(obj);
}
|
おまけ3
送信者のEmailアドレスも取得したい場合
フォームの設定で「メールアドレスを収集する」にチェックを入れておく
送信時にeで受け取りたい場合
コード.gsfunction get_item_responses(e) {
FormApp.getActiveForm();
var email = e.response.getRespondentEmail();
Logger.log(email);
}
|
送信時ではなくスクリプトエディタで実行して取得したい場合
コード.gsfunction get_latest_response() {
var form = FormApp.getActiveForm();
var formResponses = form.getResponses();
var len = formResponses.length;
var formResponse = formResponses[(len-1)];
var email = formResponse.getRespondentEmail();
Logger.log(email);
}
|



