Google Apps Script【GAS】によるGoogleフォームの扱い方入門

本記事では、Google Apps Scriptを活用してGoogle フォームの機能拡張を行い、日常業務の自動化及び効率化に寄与する方法を探求します。

Google フォームは多くの人や組織にとって重要なデータ管理ツールであり、アンケート、試験、申請など多岐に渡り用いられています。Google Apps Script(GAS)では様々なGoogleのサービスを自動化することができますが、ここではGoogle フォームに対してどのような拡張を行えるのかを見ていきます。

今回は、チュートリアルとして、アンケートの回答に特定のキーワドが検出された場合にメール通知が行われるGASを書いてみます。

Google Apps Script (GAS)とGoogleフォームで何ができるのか

GASとGoogleフォームを組み合わせることで、どのようなことがオートメーションできるのでしょうか?次にいくつかの例を挙げてみます。

Google フォームと Google Apps Script (GAS) を組み合わせることで、多種多様なオートメーションを実現できます。以下に、いくつかのアイディアを示します。

1. 自動回答確認メールの送信

フォームの回答があった際に、回答者に自動で確認メールを送信します。カスタマイズ可能な内容で、フォーム回答の概要や、次のステップに関する情報を含めることができます。

2. 回答内容に基づく自動アラート

特定のキーワードや条件にマッチする回答があった場合に、自動で担当者にメールや Slack 通知を送る機能を作れます。例えば、サービスに関する重要なフィードバックや、サポートが必要な問い合わせを即時に察知します。本記事では、これに関するチュートリアルを行います。

3. スプレッドシートへの自動データ整理・集計

回答データをスプレッドシートに自動転送し、集計やグラフ化を自動化します。回答データに基づいてダッシュボードを自動更新することで、リアルタイムでの分析ができるようになります。

4. 予約システム

イベントや会議の予約フォームとして利用し、日時や参加人数に基づいて自動でカレンダーに予約を追加したり、満席時には自動で回答をクローズしたりする機能を実装します。

5. テスト・クイズの自動化

Googleフォームによる回答を即座に採点し、結果を回答者に自動でフィードバックすることができます。さらに、成績を集計して講師に報告する機能も追加できます。

6. ワークフローの自動化

例えば、採用プロセスにおいて、応募者からの情報収集にフォームを使用し、応募データに基づいて自動で次の選考ステップへと進むようなワークフローを自動化できます。

7. カスタマイズされたレポートの生成

フォーム回答を収集し、特定のフォーマットやテンプレートに基づいてレポートを自動生成します。これにより、定期的なレポート作成の手間を省きます。

8. フィードバックループの自動化

顧客からのフィードバックを収集し、その内容に基づいて自動で改善アクションを計画するプロセスを設定します。重要なフィードバックには自動でフォローアップし、顧客満足度の向上を目指します。

【チュートリアル】回答内容に基づく自動アラートを作ってみる

ここからは、実際にGASを使ってGoogleフォームの回答内容に基づく自動通知設定を作ってみます。回答文章に「米津玄師」という文言が含まれていた場合に自動でメール通知が行われるようなシステムを作ります。

ステップ1: Googleフォームの作成

まずはGoogle フォームを作成し、質問を設定します。

googleフォームの作成

次に、フォームの回答を格納するために、Google スプレッドシートを関連付けます。フォームの「回答」タブから「スプレッドシートで表示」を選択します。

googleフォームの設定

ステップ 2: スクリプト エディタの開始

Google スプレッドシートで、拡張機能Apps Script を選択します。

Google Apps Scriptの作成

すると新しいスクリプト プロジェクトが開きます。

Apps Scripts

ステップ 3: 通知スクリプトの作成

以下のスクリプトをスクリプト エディタにコピペしてください。このスクリプトは、フォームからの新しい回答がスプレッドシートに追加されるたびにトリガーされ、特定のキーワードを含む回答を検出した場合に、指定したメールアドレスに通知を送信します。

function setupTrigger() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  ScriptApp.newTrigger('checkForKeywords')
           .forSpreadsheet(spreadsheet)
           .onFormSubmit()
           .create();
}

function checkForKeywords(e) {
  var responses = e.values;
  var keyword = '米津玄師';
  var found = responses.toString().indexOf(keyword) !== -1;

  if (found) {
    sendNotification(responses);
  }
}

function sendNotification(responses) {
  var email = 'your-email@example.com'; // 通知を受け取るメールアドレス
  var subject = '【重要】キーワード検出通知';
  var message = 'フォームの回答で指定されたキーワードが検出されました。\n\n' +
                '回答内容: ' + responses.join(', ');

  MailApp.sendEmail(email, subject, message);
}

ステップ 4: スクリプトの実行とトリガーの設定

スクリプト エディタで、setupTrigger 関数を選択し、保存、実行ボタンを順にクリックします。これにより、フォームの回答がスプレッドシートに送信されたときにスクリプトが実行されるように設定されます。

Google Apps Scriptの実行

スクリプトの実行には、Google アカウントによる認証が必要になります。その方法についてはこちらの記事で解説しています。

また、スクリプトはサンプルです。実際に使用する際は、your-email@example.com を実際に通知を受け取りたいメールアドレスに置き換えてください。これで、Google フォームの回答に「米津玄師」というキーワードが含まれていた場合に、自動的にメール通知が送信されるようになります。

実際に自分で「米津玄師」というキーワードを使った文章を回答してみると、メールに通知が来ました。

Googleフォームの送信
Google Apps Scriptによる自動検出

これをきっかけに、さらに高度で実用的なGASを作ってみてください。

上部へスクロール