はじめに
Googleフォームは、アンケートやフィードバックの収集に非常に便利なツールです。Googleフォームのオプションを指定すればフォームの回答時にメール通知も受け取ることができますが、リンクをわざわざクリックしないと結果が確認できないため、面倒です。
今回の記事では、GAS(Google Apps Script)を使用して、Googleフォームの回答をメールの文面に直接記載してメール通知する方法をご紹介します。
動作イメージ
まずは今回の動作について簡単に説明します。
以下のようなテストGoogleフォームを用意します。
[送信]ボタンを押すと、回答が完了と同時に以下のようなメールが届きます。
(上記の回答とは別で送信した内容です。)
作成方法
事前準備
今回の自動化処理の作成には、以下が必要となるためGoogleアカウントが必須となります。
- Googleフォーム
- Googleスプレッドシート
- Google Apps Script
①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フォームから[送信]で任意の方にフォームを送信し、回答を得ると自動でメールが届きます。
注意点
GASおすすめ本
GASをもっと勉強したい!ほかにも自分で何か作成したい!という方には以下がおすすめです。