[GAS]フォームの回答を集計しよう

GAS

どうも。つじけ(tsujikenzo)です。このシリーズでは 「Googleフォームとイベントオブジェクトを極めよう」 について全6回でお送りします。今日は2回目です。

前回のおさらい

前回は、Googleフォームのかんたんなご紹介と、このシリーズの目標をお届けしました。

[GAS]Googleフォームとイベントオブジェクトを極めよう はじめに
どうも。つじけ(tsujikenzo)です。このシリーズでは 「Googleフォームとイベントオブジェクトを極めよう」 について全6回でお送りします。今日は1回目です。はじめに「Googleフォーム(以後、フォーム)」 はGoogl...

今回は、 「フォームの回答を集計しよう」 をお届けしします。

アジェンダ
1. ブラウザを印刷する
2. csvを出力する
3. スプレッドシートへ出力する
4. GASを実行する

ブラウザを印刷する

フォームには、回答を確認する [回答] タブが用意されていて、ブラウザによる回答の確認方法が 3通り あります。

1.集計ページを印刷する

[回答] タブをクリックすると、 テキストやグラフで集計を表示してくれます。

質問の種類によって、円グラフや棒グラフなど、目でみやすい集計が用意されています。

この画面は、印刷(PDF化)できます。 [回答] タブをクリックして、右上の [縦3点メニュー] から、 [印刷] をクリックします。

新しいタブが表示されます。

ブラウザの任意の場所を右クリックして [印刷] をクリックします。ショートカットキー[Ctrl + p]でも可能です。

印刷設定画面が表示されますので、PDFとして保存できます。 紙での印刷 は業務効率を著しく下げる行為です。受け取る側にとっても不便です。なるべくPDFにしてメールで配布しましょう。

2.回答を個別に印刷する

さきほどは、 「回答の集計」 をPDF化しましたが、 「個別の回答」 もすべて印刷できます。 [回答タブ][縦3点メニュー] をクリックします。

[すべての回答を印刷] をクリックします。

印刷画面が表示されます。回答ごとに改ページされていますので、見やすいですね。

3.1 回答の集計URLを公開する

さきほどPDF化した回答の集計は、 ある固定された時点の集計 をお知らせするものでした。アンケートのように回答が増え続ける場合は、回答者自信で、 「最新の回答の集計」 を確認できたほうが効率いいですね。

そのために、 「回答の集計のURLを公開する」 という方法があります。[回答] タブをクリックして、右上の [縦3点メニュー] から、 [印刷] をクリックします。

新しいタブが表示されたら、 「分析を公開」 をクリックします。

さらに新しいタブが表示されて 「分析を公開しますか?」 というメッセージが表示されます。 [OK] をクリックします。

設定は以上です。新たに、フォームの回答を送信してみましょう。

送信完了画面に [前の回答を表示] リンクが表示されますので、クリックします。

[回答の集計] が表示されますので、管理者がPDFを送付しなくても、回答者自身で集計を確認できます。

3.2 回答の集計URLを公開する

同様の設定は、 [設定] メニューからも行えます。フォーム編集画面の右上にある [歯車アイコン] をクリックします。

[全般] タブから、回答者が行える操作:の [概要グラフとテキストの回答を表示] にチェックを入れて、最後に、 [保存] クリックします。

見た目はなにも変わりませんが、 [歯車アイコン] もう一度をクリックすると、[概要グラフとテキストの回答を表示] にチェックが入っていることが確認できます。確認できたら [キャンセル] をクリックしてウィンドウを閉じます。

どちらの設定方法でも変わりませんので、覚えやすい方法でかまいません。

csvを出力する

回答の集計は、csvファイルで出力できます。 [回答タブ] から [縦3点メニュー] をクリックします。

[回答をダウンロード(.csv)] をクリックします。

お使いのパソコンによって保存場所は違いますが、zipファイルがダウンロードされます。

zipファイルの中にcsvファイルが格納されていますので、Googleドライブの [マイドライブ] などに移動します。

csvファイルをダブルクリックすると、中身を確認できます。※Excelでcsvを開くと文字化けすることがあります。

csvの活用方法や、GASによる自動エクスポートは、このシリーズでは取り上げません。しかしながら、csvファイルがあると、社内基幹システムへのデータの橋渡しなどに便利です。

ここでは 「フォームの回答はcsvでエクスポートできる」 ということだけ覚えておきましょう。

スプレッドシートに出力する

回答の集計は、任意のスプレッドシートに出力できます。基本的な使い方は、 1つのフォームに対して、1つのスプレッドシート(回答)を用意する ことです。

[回答タブ][スプレッドシートアイコン] をクリックします。

回答先(スプレッドシートのことです)の選択画面が表示されます。 [新しいスプレッドシートを作成「スプレッドシート名」] にチェックが入っていることを確認して、最後に [作成] をクリックします。※ここでスプレッドシート名を変更できますが、変更する必要はさほどないと思われます。

まもなく、新しいタブで新規スプレッドシートが開きます。スプレッドシートには、過去に送信した回答が入力されています。

このスプレッドシートは、フォームが保存されているフォルダーと、同じ場所に保存されています。

スプレッドシートの連携解除

スプレッドシートが削除されたり、ゴミ箱を空にされると、ファイルが削除されたことのエラーが表示されます。

しかしながら、スプレッドシートを連携してしているデータは残っていますので、スプレッドシートの連携解除する際は、必ず [フォームのリンクを解除] をクリックする必要があります。

[フォームのリンクを解除] ウィンドウが表示されたら [リンクを解除] をクリックします。こちらに明記されているように、連携を解除しても、既存のデータ(回答)は削除されませんのでご安心ください。※引き続き集計用のスプレッドシートを使用しますので、[キャンセル] をクリックしてウィンドウを閉じます。

GASを実行する(イベントオブジェクトの登場)

最後に、 「GASを使った回答の集計」 をお伝えします。スプレッドシートのリンクを解除してしまった方は、再度、スプレッドシートの連携を行ってください。

まず、スプレッドシートを開きます。

[ツール] メニューから [スクリプトエディタ] をクリックします。

スクリプトエディタが立ち上がらないなど、起動時のエラーが起きる場合は、こちらの記事を参考にしてください。

[ノンプロ研]GAS初級講座8期DAY1補講 はじめてのGAS、変数、演算、データ型
どうも。つじけ(tsujikenzo)です。このシリーズでは、2021年2月から始まりました「ノンプロ研GAS初級講座8期」について、講座内では伝えきれなかったことなどを、全8回でお届けします。前回のふりかえり前回は「事前課題...

左上の「プロジェクト名」をクリックすると、プロジェクト名を変更できます。今回はわかりやすくスプレッドシートと同じ名前にしました。最後に [名前を変更] をクリックします。

イベントオブジェクトの取得

GASには [イベントオブジェクト] と呼ばれる、[なにかアクションが起きたときに、アクションに含まれる情報を集めたデータ] が存在します。

「フォームが送信される」というアクションが起きたときに、とくに得たい情報の1つが、 [回答] です。イベントオブジェクトに含まれる[回答]を操作することで、幅広い業務効率化に活用できます。

イベントオブジェクトは、関数に引数(e)として渡されます。関数内で、eを加工することで、さまざまな処理を行います。

function myFunction(e) {

//ここでeを使って、処理を行う

}

ユーザーから送信された [回答][e.values] で取得できます。

e.values

このようなコードを書いてみましょう。

function myFunction(e) {

console.log(e.values);

}

スクリプトエディターは、上書き保存を忘れないようにしましょう。

トリガーを設置する

フォームが送信されたら、 myFunction(e) が実行されるように、トリガーを設置します。

スクリプトエディターの左メニューから、 [トリガー] をクリックします。

トリガー画面に切り替わったら、右下の [トリガーを追加] をクリックします。

トリガー設定ウィンドウが開いたら、下記のように設定をして、 最後に [保存] をクリックします。※初回実行時には認証画面が出ると思いますが、適宜認証してください。認証方法は割愛します。
1. 実行する関数を選択・・・myFunctiton
2. イベントのソースを選択・スプレッドシートから
3. イベントの種類を選択・・フォーム送信時

このように、トリガーが1件登録されたら完了です。

トリガーの発火

フォームを送信して、トリガーを発火させましょう。「パーティー招待状」のフォームから回答を送信します。

回答が送信されました。

スクリプトエディターに戻り、左メニューから [実行数] をクリックします。

実行数一覧の一番上に表示されているのが、 [フォーム送信時トリガー] から発火された、ログ(記録)です。クリックすると中身を確認できます。

1次元配列で、[回答] を取得できています。ユーザーはフォームから入力していませんが、回答の先頭には、送信した時刻の [タイムスタンプ] を取得しているのも特徴的です。

この1次元配列を加工することで、「メールを送信する」、「別のフォームを送信する」 など、さまざまな処理を行うことができます。

まとめ

以上で、 「フォームの回答を集計しよう」 をお届けしました。管理者だけでなく、回答を送信したユーザーがどのような形で集計にアクセスできたらよいか、さまざまな選択肢が用意されているので、とても便利ですね。

また、後半では、「スプレッドシート連携のおさらい」 と、 「フォーム送信時をトリガーとしたGASの実行」 をご紹介しました。今後はその中で登場した 「イベントオブジェクト」 について、もう少し深掘りしていきたいと思います。

次回は、「トリガーとイベントオブジェクト」 をお届けします。

このシリーズの目次

  1. [GAS]Googleフォームとイベントオブジェクトを極めよう はじめに
  2. [GAS]フォームの回答を集計しよう
  3. [GAS]トリガーとイベントオブジェクト
  4. [GAS]スプレッドシートのコンテナバインドのフォーム送信時トリガー
  5. [GAS]フォームのコンテナバインドのフォーム送信時トリガー
  6. [GAS]トリガー作成アカウントと実行アカウントの違いについて
タイトルとURLをコピーしました