libro
www.tuyano.com
Google Apps Scriptプログラミング [中級編]

FormAppによるフォームの集計と作成 (1/5)

作成:2013-06-23 09:32
更新:2013-06-23 09:32

■新しくなったフォームとFormApp

Googleのサービスは日に日に新しくなっています。前からあったものでも、気がつけばまるで別のものに生まれ変わっていることもあります。その好例が「フォーム」でしょう。

フォームは、Googleドキュメントに用意されている「フォーム送信ページの簡単作成ツール」です。用意された質問の部品を並べていくだけで、誰でも簡単に各種のフォームを作り公開できます。フォームから送信された情報は自動的に集計されます。各種のアンケートからお問い合わせのフォームまで、大抵のものはこれで作ることができます。

このフォームは、以前からGoogle Apps Scriptで扱うことができました。といっても、当初は作成したフォームからスクリプトエディタを開いて、フォームを開いたり送信したときに発生するイベントのトリガーを使って「送信されたらこういうことをする」といった簡単な処理を作るぐらいのことしかできませんでした。(詳細は以下にあります)

※フォーム送信の基本
http://libro.tuyano.com/index3?id=645006


ところが、その後、フォームを本格的に扱うためのオブジェクトが用意され、今では送信されたフォームの集計から新たなフォームの自動生成まで、ひと通りのことがスクリプトで行えるようになっています。

このフォームを扱うために用意されているのが「FormApp」というオブジェクトです。ここからフォームを示す「Form」オブジェクトを取得し、さまざまな情報を取り出したり操作をしたりするのです。まずはスクリプトからのフォームの利用について簡単に整理しておきましょう。


・アクティブなフォームを得る
変数 = FormApp.getActiveForm();
フォームからスクリプトエディタを開いてスクリプトを作成する場合、そのフォームは「アクティブなフォーム」として扱われます。getActiveFormで、そのスクリプトが設定されているアクティブ・フォームが得られます。


・ID/URLでフォームを開く
変数 = FormApp.openById( フォームのID );
変数 = FormApp.openByUrl( フォームのURL );
既にあるフォームを開いて操作する場合は、フォームのIDURLを引数に指定して、そのフォームのFormオブジェクトを取得することができます。IDというのは、フォームを開いたアドレスの最後に書かれているランダムな長い文字列の部分です。

これらの操作は、最初にスクリプトを実行する際にフォームを利用するための認証画面が現れます。ここで許可すれば次回から使えるようになります。スクリプトを利用する際には、まず認証を行なってから改めて実行をしてください。


・公開URLの取得
変数 = 《FormApp》.getPublishedUrl();
そのフォームが公開されるアドレスを取得するものです。返値は文字列になります。


・編集URLの取得
変数 = 《FormApp》.getEditUrl();
そのフォームの編集用アドレスを取得するものです。返値は文字列になります。


・IDの取得
変数 = 《FormApp》.getId();
フォームに割り振られているIDを取得します。これも返値は文字列になります。

・タイトルの取得/設定
変数 = 《FormApp》.getTitle();
《FormApp》.setTitle( タイトル );
フォームには最初にタイトルが表示されますが、それを取得したり設定するものです。値は文字列で扱われます。


――下に簡単な利用例を挙げておきます。アクティブ・フォームを取得してタイトルを設定し、そのURLやIDをログに出力します。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

function makeForm(){
  var form = FormApp.getActiveForm();
  form.setTitle("Sample Form");
  Logger.log('Published URL: ' + form.getPublishedUrl());
  Logger.log('Editor URL: ' + form.getEditUrl());
  FormApp.openById(form.getId());
}

※関連コンテンツ

「Google Apps Scriptプログラミング [中級編]」に戻る