GASのonFormSubmitトリガーの使い方と応用

先生

GASのonFormSubmitトリガーを使いこなして、フォーム処理を自動化しよう!

GASのonFormSubmitトリガーとは?基本を理解する

Google Apps Script (GAS) の onFormSubmit トリガーは、Googleフォームが送信された際に自動的に実行される関数を設定できる強力なツールです。アンケートの回答をリアルタイムで処理したり、データベースに記録したり、メール通知を送信したりするなど、様々な処理を自動化できます。

この記事では、onFormSubmitトリガーの基本的な使い方から、より高度な応用までを解説します。GAS初心者の方でも理解できるように、丁寧に説明していきます。

まずは、トリガーを設定するための準備をしましょう。Googleフォームと連携するGASプロジェクトを作成する必要があります。

Googleフォームを開き、右上の「︙」アイコンをクリックし、「スクリプトエディタ」を選択します。これで、フォームに紐づいたGASプロジェクトが開きます。

onFormSubmitトリガーの基本的な使い方

onFormSubmitトリガーを設定するには、onFormSubmitという名前の関数を作成します。この関数は、フォームが送信されるたびに実行されます。

function onFormSubmit(e) {
  // フォーム送信時に実行される処理
  Logger.log(JSON.stringify(e));
}

上記のコードでは、フォーム送信時にイベントオブジェクト e の内容をログに出力しています。イベントオブジェクトには、フォームの回答内容や送信者の情報などが含まれています。

次に、トリガーを手動で設定する必要があります。GASエディタの左側のメニューから「トリガー」アイコンをクリックし、「トリガーを追加」ボタンをクリックします。

設定画面で、以下のように設定します。

* 関数を選択: onFormSubmit

* イベントの種類を選択: フォーム送信時

* 通知設定は必要に応じて設定

「保存」ボタンをクリックすると、トリガーが設定されます。これで、フォームが送信されるたびに onFormSubmit 関数が実行されるようになります。

イベントオブジェクト e には、以下の情報が含まれています。

* e.response: フォームの回答内容を含むオブジェクト

* e.response.getItemResponses(): 各質問に対する回答の配列

* e.response.getTimestamp(): フォームが送信された日時

これらの情報を利用して、様々な処理を行うことができます。

onFormSubmitトリガーを使った具体的な応用例

ここでは、onFormSubmitトリガーを使った具体的な応用例をいくつか紹介します。

1. 回答内容をスプレッドシートに記録する: フォームの回答内容を自動的にスプレッドシートに記録することができます。

function onFormSubmit(e) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('回答');
  var responses = e.response.getItemResponses();
  var row = [e.response.getTimestamp()];
  for (var i = 0; i < responses.length; i++) {
    row.push(responses[i].getResponse());
  }
  sheet.appendRow(row);
}

上記のコードでは、回答 という名前のシートに、フォームの回答内容を追記しています。

2. メール通知を送信する: フォームが送信された際に、特定の宛先にメール通知を送信することができます。

function onFormSubmit(e) {
  var email = 'your_email@example.com';
  var subject = 'フォームが送信されました';
  var body = 'フォームの回答内容:\n' + JSON.stringify(e.response.getItemResponses());
  MailApp.sendEmail(email, subject, body);
}

上記のコードでは、your_email@example.com 宛に、フォームの回答内容をメールで送信しています。

3. 特定の条件を満たす回答があった場合に処理を行う: 例えば、特定の質問に対して特定の回答があった場合に、別の処理を実行することができます。

function onFormSubmit(e) {
  var responses = e.response.getItemResponses();
  if (responses[0].getResponse() === 'はい') {
    // 最初の質問の回答が「はい」の場合に実行される処理
    Logger.log('最初の質問の回答は「はい」でした。');
  }
}

上記のコードでは、最初の質問の回答が「はい」の場合に、ログにメッセージを出力しています。

これらの応用例を参考に、様々な処理を自動化することができます。

onFormSubmitトリガー利用時の注意点

onFormSubmitトリガーを利用する際には、いくつかの注意点があります。

1. 実行時間制限: GASには、スクリプトの実行時間に制限があります。処理が複雑になるほど、実行時間が長くなるため、制限時間を超えないように注意する必要があります。

2. 権限: GASは、Googleの各種サービスにアクセスするために、権限を要求します。必要な権限を適切に設定するようにしましょう。

3. エラー処理: スクリプトにエラーが発生した場合、トリガーが正常に動作しないことがあります。エラー処理を適切に行い、エラーが発生した場合でも、処理が停止しないように対策する必要があります。

4. セキュリティ: フォームの回答内容には、個人情報が含まれる場合があります。セキュリティ対策をしっかりと行い、情報の漏洩を防ぐようにしましょう。

参考リンク

まとめ

GASのonFormSubmitトリガーは、Googleフォームの自動化に非常に役立つツールです。基本的な使い方を理解し、応用例を参考にすることで、業務効率を大幅に向上させることができます。注意点に留意しながら、ぜひ活用してみてください。