Apps Scriptリファレンス: Apps Script Reference |障害・課題追跡: IssueTracker |Google Workspace: Status Dashboard - Summary

2017年11月11日土曜日

Google Formの質問項目を取得する

Google Formを新規作成して
質問1にラジオボタンの選択肢を2つ
質問2に記述式の質問を配置した
こんなフォームがあるとして


このフォームに配置されている質問(item)の情報をログに出して見る
ということをやった時のコードです


このリンクから新規Google Formを作成できます
https://docs.google.com/forms/create


スクリプトエディタを開く方法は
こちら


.getで出てきたのが以下5つなので
item毎に出してみたのが上のログです


以下のようなコードを書いて
get_items()を実行すると
上のようなログが出ます


コード.gs
function get_items() {
  var form = FormApp.getActiveForm();
  var items = form.getItems();
  Logger.log("【items.length】" + items.length);
  for (var i = 0; i < items.length; i++) {
    Logger.log("【getHelpText()】" + items[i].getHelpText());
    Logger.log("【getId()】" + items[i].getId());
    Logger.log("【getIndex()】" + items[i].getIndex());
    Logger.log("【getTitle()】" + items[i].getTitle());
    Logger.log("【getType()】" + items[i].getType());
  }
}
意訳.gs
実行する機能を定義する(何をやる機能か)
現在編集しているフォームを取得して
質問(item)をすべて取得して
質問の数をログに出す
質問の数だけ以下を繰り返す
質問の説明をログに出す
質問のIDをログに出す
質問のIndexをログに出す
質問のTitleをログに出す
質問のTypeをログに出す




おまけ


配列で取得したい場合はこんなコードで

コード.gs
function get_items() {
  var form = FormApp.getActiveForm();
  var items = form.getItems();
  Logger.log("【items.length】" + items.length);
  var items_array = [];
  for (var i = 0; i < items.length; i++) {
    var help_text = items[i].getHelpText();
    var item_id = items[i].getId();
    var item_index = items[i].getIndex();
    var item_title  = items[i].getTitle();
    var item_type = items[i].getType();
    var result = [help_text, item_id, item_index, item_title, item_type];
    items_array.push(result)
  }
  Logger.log(items_array);
}



オブジェクトで取得したい場合はこんなコードで

コード.gs
function get_items() {
  var form = FormApp.getActiveForm();
  var items = form.getItems();
  var arrays = [];
  for (var i = 0; i < items.length; i++) {
    var obj = {};
    var item = items[i];
    obj['text'] = item.getHelpText();
    obj['id'] = item.getId();
    obj['index'] = item.getIndex();
    obj['title'] = item.getTitle();
    obj['type'] = item.getType();
    arrays.push(obj);
  }
  Logger.log(arrays);
}






参考
https://developers.google.com/apps-script/reference/forms/form

Latest post

Google Apps Scriptの障害時はIssueTrackerを見てみる - Incidents for Apps Script are reported on Issue Tracker

IssueTracker > Apps Script issues https://issuetracker.google.com/savedsearches/566234 Google Apps Scriptの障害時は IssueTracker に課題が上がっていることが...