GASでフォーム送信データを自動で整理・加工する方法

先生

GASでフォームのデータを自動で整理して、業務を効率化しましょう!

GASでフォーム送信データを自動整理・加工!業務効率化の秘訣

Google Apps Script(GAS)を使えば、Googleフォームで収集したデータを自動で整理・加工できます。これにより、手作業によるデータ処理の時間を大幅に削減し、業務効率を向上させることが可能です。この記事では、GASの基本的な使い方から、フォーム送信データの取得、整理、加工、そしてスプレッドシートへの書き込みまで、具体的な手順を解説します。

フォームの回答をリアルタイムで処理したい、特定の条件を満たすデータだけを抽出したい、複数のスプレッドシートにデータを振り分けたい… GASを使えば、これらの要望をすべて叶えることができます。プログラミング初心者でも理解しやすいように、コード例を交えながら丁寧に解説していきますので、ぜひ最後までお読みください。

GASの基本とフォーム送信データの取得

GASは、Google Workspaceの各種サービスを連携させて自動化するためのスクリプト言語です。JavaScriptをベースにしており、Webアプリケーション開発の経験があればすぐに使いこなせるでしょう。

まず、Googleフォームと連携するGASプロジェクトを作成します。Googleスプレッドシートを開き、「ツール」→「スクリプトエディタ」を選択すると、GASの編集画面が開きます。

次に、フォーム送信時のイベントをトリガーにしてGASを実行するための設定を行います。スクリプトエディタの左側にある「トリガー」アイコンをクリックし、「トリガーを追加」ボタンを押します。イベントの種類で「フォーム送信時」を選択し、実行する関数を指定します。

function onFormSubmit(e) {
  // フォームの回答内容を取得
  var responses = e.response.getItemResponses();

  // 各質問の回答を取得
  var timestamp = e.response.getTimestamp();
  var name = responses[0].getResponse();
  var email = responses[1].getResponse();

  Logger.log('タイムスタンプ: ' + timestamp);
  Logger.log('名前: ' + name);
  Logger.log('メールアドレス: ' + email);

  // 取得したデータをログに出力(デバッグ用)
}

上記のコードは、フォームが送信された際に実行されるonFormSubmit関数です。e.response.getItemResponses()でフォームの全回答を取得し、各質問の回答をgetResponse()で取得しています。取得したデータはLogger.log()でログに出力されます。Logger.log()はGASの実行ログを確認するための便利な関数です。

データ整理・加工の実践

取得したデータを整理・加工する例を見てみましょう。ここでは、メールアドレスの形式をチェックし、不正な形式の場合はエラーメッセージをスプレッドシートに書き込む処理を実装します。

function onFormSubmit(e) {
  var responses = e.response.getItemResponses();
  var email = responses[1].getResponse();

  // メールアドレスの形式チェック
  var emailRegex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;
  if (!emailRegex.test(email)) {
    // 不正な形式の場合
    Logger.log('不正なメールアドレス: ' + email);
    // スプレッドシートにエラーメッセージを書き込む処理をここに記述
  } else {
    // 正しい形式の場合
    Logger.log('正しいメールアドレス: ' + email);
    // スプレッドシートにデータを書き込む処理をここに記述
  }
}

上記のコードでは、正規表現^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/を使ってメールアドレスの形式をチェックしています。emailRegex.test(email)でメールアドレスが正規表現にマッチするかどうかを判定し、マッチしない場合はエラーメッセージをログに出力します。

さらに、このエラーメッセージをスプレッドシートに書き込む処理を追加することで、データの品質を向上させることができます。

スプレッドシートへの書き込み

最後に、整理・加工したデータをスプレッドシートに書き込む方法を解説します。

function onFormSubmit(e) {
  var responses = e.response.getItemResponses();
  var timestamp = e.response.getTimestamp();
  var name = responses[0].getResponse();
  var email = responses[1].getResponse();

  // スプレッドシートのIDとシート名
  var spreadsheetId = 'YOUR_SPREADSHEET_ID';
  var sheetName = 'シート1';

  // スプレッドシートを取得
  var spreadsheet = SpreadsheetApp.openById(spreadsheetId);
  var sheet = spreadsheet.getSheetByName(sheetName);

  // データを書き込む
  sheet.appendRow([timestamp, name, email]);
}

上記のコードでは、SpreadsheetApp.openById(spreadsheetId)でスプレッドシートを取得し、getSheetByName(sheetName)でシートを取得しています。sheet.appendRow([timestamp, name, email])で取得したデータをシートの最終行に追加しています。YOUR_SPREADSHEET_IDは、実際に使用するスプレッドシートのIDに置き換えてください。

フォームから送信されたデータは、自動的にスプレッドシートに記録されるため、データ分析やレポート作成が容易になります。

参考リンク

まとめ

GASを活用することで、Googleフォームの送信データを自動で整理・加工し、スプレッドシートに書き込むことができます。これにより、手作業によるデータ処理の時間を大幅に削減し、業務効率を向上させることが可能です。

今回紹介したコード例を参考に、ぜひGASを使ったフォーム自動処理を試してみてください。最初は簡単な処理から始め、徐々に複雑な処理に挑戦していくと良いでしょう。GASは、あなたの業務効率化に大きく貢献してくれるはずです。