Skip to content

GoogleFormsの回答を自動でクリアする

Posted on:2021年2月4日 at 00:00
この記事は旧ブログサービスからの移植記事です。
表示がおかしい場合があります、ご了承ください。

TL;DR

Google Apps Scriptの deleteAllResponses() メソッドを利用してGoogleFormの回答を自動的に削除するように組みます。

使用するもの

どちらも無料のサービスです。

Google Apps Script については無料で利用する場合一部の制限がかかりますが、今回のような利用量では問題ないと思います。

利用したくなった状況

Google Formを利用するプロダクトを作成していた中で、 テスト入力した回答が溜まっていくのが嫌に感じていました。

そこで、回答が登録されるたびに内容を全削除するスクリプトがほしいと思い作成しました。

実装方法

スクリプトエディタを開く

まずはスクリプトエディタを開きます。

自動で回答を削除したいGoogle Formの編集画面より、「スクリプトエディタ」を選択してGoogle Apps Scriptを開きます。

右上のオプションからスクリプトエディタを選択する

以下のような画面が表示されるはずです。

ここにコードを記述していく

自動削除スクリプトの実装

今回作成する関数の名前は DeleteAllEntries とします。

関数名を変更した後、 FormApp.openByUrl を利用して自動削除対象のGoogle Formを登録します。

その後、そのオブジェクトが存在する場合に deleteAllResponses() メソッドを呼び出してすべての回答を削除します。

function DeleteAllEntries() {
  form = FormApp.openByUrl('https://docs.google.com/forms/d/XXXXXXXXXXXXXXXXXXX/edit')
  if(form)form.deleteAllResponses();
}

if(form)form.deleteAllResponses(); と記述している理由は、FormApp.openByUrl が失敗した場合にnull が返される仕様を利用しているからです。

参考

Class FormApp  |  Apps Script  |  Google Developers

トリガーの設定

Google Apps Script の画面左側のメニューより「トリガー」を選択します。

時計のマーク

画面右下に表示される「トリガーを追加」を押すと以下の画面が表示されます。

「実行する関数を選択」に先ほど作成した関数をセットし、「イベントの種類を選択」に「開始時」をセットします。

こうすることによって、回答が登録された瞬間に自動ですべての回答を削除するスクリプトが組まれます。

応用として、トリガーを変更したりスクリプトの内容を変更することで「3日ごとに回答をすべてクリアする」などの処理も組むことができます。

参考文献