★うめじ英語塾 お問い合わせフォーム★

Google Drive上の指定したフォルダにあるフォームの全ての回答を削除する方法

Google Drive上の指定したフォルダにあるフォームの全ての回答を削除する方法
Summary

The following Google Apps Script (GAS) code allows you to delete all the form responses in a specified folder on Google Drive.

Warning: with this code, all the form responses in the specified folder will be deleted forever and can no longer be accessed. The deletion is irreversible.

週末(2022年6月11日-12日)の課題研究で、Google Drive 上の指定したフォルダにある全てのフォームの全ての回答を削除するプログラムを書きました。誰かのお役に立てるのではないかと思い、まとめてみました。なお、このプログラムは「暫定ざんてい版」です。問題点の指摘をお願いします。

フォームの回答は手動で個別に削除することもできますが、フォームが数多くあって面倒な場合や手動で作業すると抜け漏れが発生しそうな場合、このプログラムは便利です。

Google Drive上の 1234567890_abcdefghijklmnopqrstuvwxzy という ID のフォルダにある全てのフォームの全ての回答を削除したい場合の例をお示しします。

function DeleteAllResponses() {
  let id = "1234567890_abcdefghijklmnopqrstuvwxzy";
  let folder = DriveApp.getFolderById(id);
  let files = folder.getFiles();
  while (files.hasNext()) {
    let file = files.next();
    let mimeType = file.getMimeType();
    //Extract and process only Google Forms
    if (mimeType == 'application/vnd.google-apps.form') {
      let id2 = file.getId();
      let form = FormApp.openById(id2);
      form.deleteAllResponses(); //This deletion is irreversible!
    }
  }
}

このプログラムを日本語で解読すると以下の通りになります。

「全ての回答を削除する」機能の手順() {開始
  「id」という名前の変数を作り、"1234567890_abcdefghijklmnopqrstuvwxzy"を記憶せよ;
  「folder」という変数を作り、「id」で指定するフォルダ名を記憶せよ;
  「files」という変数を作り、「folder」に記憶したフォルダ内の全てのファイル情報を記憶せよ;
  ※次の条件が適合する間は処理を繰り返せ(「files」に次のファイルが残っている) {※繰り返し開始
    「file」という変数を作り、「files」に残っている次のファイルのファイル名を記憶せよ;
    「mimeType」という変数を作り、「file」に記憶したファイル名を持つファイルの種類を記憶せよ;
    //Googleフォームだけを抽出して処理
    ☆次の条件が適合すれば処理を行え(「mimeType」に記憶したファイルの種類が'application/vnd.google-apps.form'つまりGoogleフォームである) {☆処理開始
      「id2」という変数を作り、「file」に記憶したファイル名を持つファイルの ID を記憶せよ;
      「form」という変数を作り、「id2」で指定するフォームを開いて情報を記憶せよ;
      「form」の情報の中から回答の情報を全て削除せよ; //削除は取消不能!
    }☆処理終了
  }※に戻って繰り返し
}終了

なお、このプログラムを使うためには、Google にログインして、My Projects(自分のプロジェクト)にアクセスし、新しいプロジェクトを作り、実行時のアクセス許可の承認等の手順を踏む必要があります。詳細はネット検索していただけたらと思います。

注意!
このプログラムを使ってフォームから削除した回答は、「元に戻す」でも復元できません。

【参考にした動画やウェブサイト】

  1. Google DriveApp Example Google Apps Script List Files in Folder from Drive – YouTube
  2. Google Apps Script Deleting Google Drive Files in Folder Example – YouTube
  3. Class FormResponse | Apps Script | Google Developers