SANANEBLOG
GAS PR

Googleフォームが回答されたときに回答内容をメール本文に記載して通知を受け取る方法【GAS】

記事内に商品プロモーションを含む場合があります

はじめに

Googleフォームは、アンケートやフィードバックの収集に非常に便利なツールです。Googleフォームのオプションを指定すればフォームの回答時にメール通知も受け取ることができますが、リンクをわざわざクリックしないと結果が確認できないため、面倒です。

今回の記事では、GAS(Google Apps Script)を使用して、Googleフォームの回答をメールの文面に直接記載してメール通知する方法をご紹介します。

動作イメージ

SANANE

まずは今回の動作について簡単に説明します。

以下のようなテストGoogleフォームを用意します。

[送信]ボタンを押すと、回答が完了と同時に以下のようなメールが届きます。

(上記の回答とは別で送信した内容です。)

作成方法

事前準備

今回の自動化処理の作成には、以下が必要となるためGoogleアカウントが必須となります。

  • Googleフォーム
  • Googleスプレッドシート
  • Google Apps Script
SANANE

①Googleフォームで回答された内容をスプレッドシートに記録

②その内容をもとにメール文面を作成

③指定したメールアドレスに送信する流れとなります。

Googleフォームの操作

まず、Googleフォームへアクセスします。

すでに作成してあるフォームを選択するか、新規でフォームを作成したら、上部バーの[回答]をクリックします。

[スプレッドシートにリンク]をクリックします。

特に指定等なければ[新しいスプレッドシートを作成]からフォームの名前を変更し、[作成]をクリックします。

スプレッドシート・GASの操作

スプレッドシートが自動で開きます。[拡張機能]>[Apps Script]をクリックします。 GASが開きます。

次に、実際にコードを記載していきます。もともと記載してある以下コード

function myFunction() {

}

削除して、新たに下記のコードをコピペしてください。

また、2行目の 「example@example.com」 に回答を受信したいメールアドレスを入力してください

// 送信先のメールアドレスをここに指定してください
var EMAIL_ADDRESS = "example@example.com";

function onFormSubmit(e) {
  var formResponses = e.values;
  var emailBody = '';

  emailBody += '回答時刻:' + formResponses[0] + '\n\n';

  // スプレッドシートから質問タイトルを取得
  var sheet = e.source.getActiveSheet();
  var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];

  // タイムスタンプ以外の質問と回答を追加
  for (var i = 1; i < formResponses.length; i++) {
    emailBody += '質問' + i + ':' + headers[i] + '\n' + formResponses[i] + '\n\n';
  }

  // メールを送信します。
  MailApp.sendEmail({
    to: EMAIL_ADDRESS,
    subject: "Googleフォームの回答がありました",
    body: emailBody
  });
}

最後に「Ctrl + S」を押すか上部バーにある[プロジェクトを保存]をクリックするとスクリプトが保存されます。

正しく保存ができていないと次のトリガーの作成でエラーが発生します。

トリガーの作成

次にメールを送信するための引き金となるアクション(トリガー)を作成します。

スクリプトエディタの左部のメニューから「トリガー」(時計のアイコン)をクリックします。

画面下部の「+ トリガーを追加」をクリックします。

実行する関数を[onFormSubmit]に設定し、イベントソースを[スプレッドシートから]、イベントタイプを[フォーム送信時]に設定します。

最後に[保存]をクリックします。

最初の関数の実行には権限が必要となるため、[承認が必要です]というモーダルが表示されたら、

[権限を確認]>[表示されているGoogleアカウント(Choose an account)]>[詳細(Advanced)]>[Go to 無題のプロジェクト(unsafe)]>[許可(Allow)]まで移動します。

クリック後トリガーが作成されます。

自動化処理の実行

以上で自動化処理の作成は完了です。あとはGoogleフォームから[送信]で任意の方にフォームを送信し、回答を得ると自動でメールが届きます。

注意点

一日あたりのメール送信件数には制限があります。無料のGoogleアカウントの場合、日々の制限がありますので、大量のメール送信を予定している場合は注意が必要です。

GASおすすめ本

GASをもっと勉強したい!ほかにも自分で何か作成したい!という方には以下がおすすめです。