Googleフォームの回答者に自動返信メールを送る方法|GAS×Gmail下書きを使って自動化

Googleフォームを使って問い合わせや申込みを受け付ける際、回答者に自動で「受付完了メール」や「返信メール」を送りたいケースありませんか?
ですが、Googleフォーム単体では自動返信メールのカスタマイズには限界があります。
そこで今回は、Google Apps Script(GAS)とGmailで作成した下書きを使って、自動返信メールが送れる例をご紹介します。
自動返信ができれば、毎回返信する作業負担を減らしつつ、すばやい対応ができるようになります。
完成イメージ
Googleフォーム回答結果

自動返信メール

- フォーム送信後、あらかじめ用意した下書きメールが自動で送信される
- 送信内容がメール本文に自動反映(氏名や問い合わせ内容)
- メール送信日時をフォームの回答シートに記録(例:F列)
自動返信メールに必要な4つの設定
今回の例では、Googleフォームで自動返信メールを実現するためには次の4つの準備・設定が必要です。
- Googleフォームの作成
問い合わせや申込み内容を受け付けるフォームを作成し、回答をスプレッドシートに保存します。 - Gmail下書きテンプレートの作成
自動返信メールとして送信する「本文テンプレート」をGmailの下書きとして用意します。 - スクリプトの設定
Google Apps Scriptで、フォーム送信時に下書きを使って自動返信メールを送信するスクリプトを設定します。 - トリガーの設定
スクリプトが自動で動作するよう、「フォーム送信時」にスクリプトを実行するトリガーを設定します。
この4つのステップを順番に設定することで、フォーム送信→自動返信メール→送信記録までを自動化できます。
それぞれの設定手順について以下でご紹介します。
Googleフォームの作成

まずはGoogleフォームの作成から始めます。
今回は以下のようなシンプルなフォームを例に進めます。
- メールアドレス
(必須、記述式) - お名前
(記述式) - お問い合わせ内容
(チェックボックス形式・複数選択可:資料請求/見積もり依頼/サービス質問/使い方/その他) - お問い合わせ詳細
(段落・自由記述)

ブラウザからGoogleフォームにアクセスします。
(GoogleドライブからでもGoogleフォームを新規作成できます。その場合、Googleドライブで「+新規」>「Google フォーム」を選択します。)

「新しいフォームを作成」の中から、「空白のフォーム」を選択して新規作成します。

フォーム画面の上部にある「設定」をクリックします。
「設定」タブ内の「回答」セクションにある「メールアドレスを収集する」の選択肢を選びます。
(今回の例では「回答者からの入力」としています。「確認済み」を選択した場合は回答者が入力をしなくても済むようになります。)

質問タブをクリックし、フォームの名前を入力します。
その後、質問を追加していきます。
質問の追加例
- 1問目:お名前
-
- 「+」ボタンで質問を追加
- 「お名前」と入力
- 「記述式」を選択
- 2問目:お問い合わせ内容
- 「+」ボタンで質問を追加
- 「お問い合わせ内容」と入力
- 「チェックボックス」を選択
- 以下の選択肢を追加
・資料請求
・サービスについてのご質問
・見積もり依頼
・操作方法・使い方について
・その他のお問合せ
- 3問目:お問い合わせ詳細
- 「+」ボタンで質問を追加
- 「お問い合わせ詳細」と入力
- 「段落」を選択

次に、回答の保存先をスプレッドシートにするため「回答」タブをクリックします。

新しいスプレッドシートを作成します。(または既存のシートを選択)

これで、メールアドレスを含むすべての回答がGoogleスプレッドシートに自動で保存されるようになります。

フォーム編集画面右上の「公開」ボタンをクリックします。

回答者の対象範囲を選択して、公開をクリックします。
フォームが公開状態になれば、回答を受け付けできるようになります。
下書きメールテンプレートの作成

続いて、Googleフォームの回答があった際に自動返信するメールの下書きテンプレートを作成します。

Gmailを開きます。

左上の「作成」ボタンをクリックし、新規メール作成画面を開きます。

- 件名
-
例:「お問い合わせ受付のご案内」
※今回のスクリプトではこの件名で検索されます - 本文
-
以下のサンプルのように入力すると、返信の際に「{{name}}」「{{category}}」「{{detail}}」が自動でフォーム内容に置き換わります。
{{name}} 様
この度はお問い合わせいただき、誠にありがとうございます。
────────────────────
【お問合せ内容】
{{category}}【お問合せ詳細】
{{detail}}
────────────────────内容を確認のうえ、担当より後日ご連絡させていただきます。
今しばらくお待ちくださいますよう、よろしくお願いいたします。
「宛先」は空欄のままでOKです。
書き終わったら自動的に「下書き」として保存されるので、ウインドウを閉じます。
Googleフォームと下書きメールテンプレートの準備ができれば、あとはスクリプトとトリガーを設定して自動返信メールが完成します。
スクリプトの設定

Googleフォームの「回答」タブからスプレッドシートを開きます。
(または、Googleドライブでフォームの回答用スプレッドシートを開きます。)

スプレッドシートの画面上部メニューから「拡張機能」→「Apps Script」をクリックします。
新しいタブでGoogle Apps Scriptのエディタが開きます。
function myFunction(){
}
が最初から入っているため、消去して以下のスクリプトを貼り付けます。
自動返信スクリプト
function onFormSubmit(e) {
const responses = e.values;
const formSheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0]; // 最初のシート=フォームの回答シート
const lastRow = formSheet.getLastRow();
// フォーム項目に合わせて変数セット(列順:0=タイムスタンプ, 1=メール, 2=名前, 3=お問合せ内容, 4=詳細)
const email = responses[1] || "";
const name = responses[2] || "";
const category = responses[3] || "";
const detail = responses[4] || "";
// 検索したいメール件名をここに入れる(例:「お問い合わせ受付」)
const DRAFT_KEYWORD = "お問い合わせ受付のご案内";
const drafts = GmailApp.getDrafts();
const draft = drafts.find(d => d.getMessage().getSubject().includes(DRAFT_KEYWORD));
if (!draft) {
Logger.log("下書きが見つかりません。");
return;
}
const msg = draft.getMessage();
const subject = msg.getSubject();
let body = msg.getBody()
.replace("{{name}}", name)
.replace("{{category}}", category)
.replace("{{detail}}", detail);
GmailApp.sendEmail(email, subject, "", {
htmlBody: body
});
// 送信日時をF列(6列目)に記録
formSheet.getRange(lastRow, 6).setValue(new Date());
}
スクリプトの説明
- フォームの回答内容を取得
-
const responses = e.values;
e.values
: フォームに入力された各回答値が配列で格納されています。
- 回答シート・最新行の取得
-
const formSheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0]; const lastRow = formSheet.getLastRow();
getActiveSpreadsheet()
: 開いているスプレッドシート全体を取得します。getSheets()[0]
: スプレッドシート内の最初のシート(フォームの回答シート)を取得します。getLastRow()
: 最新の回答(最終行)の行番号を取得します。
- 回答データの各項目を変数にセット
-
const email = responses[1] || ""; const name = responses[2] || ""; const category = responses[3] || ""; const detail = responses[4] || "";
- 回答内容の配列(responses)からメールアドレス・お名前・お問い合わせ内容・詳細を変数に格納します。
- 例:responses[1]が「メールアドレス」、responses[2]が「お名前」
- 下書きメールテンプレートの検索・取得
-
const DRAFT_KEYWORD = "お問い合わせ受付のご案内"; const drafts = GmailApp.getDrafts(); const draft = drafts.find(d => d.getMessage().getSubject().includes(DRAFT_KEYWORD)); if (!draft) { Logger.log("下書きが見つかりません。"); return; }
GmailApp.getDrafts()
: Gmailの下書き一覧を取得します。find(...)
: 件名に指定キーワード(DRAFT_KEYWORD)が含まれる下書きを検索します。- 下書きが見つからない場合は処理を中断します。
- 下書きメールの本文差し込み・送信
-
const msg = draft.getMessage(); const subject = msg.getSubject(); let body = msg.getBody() .replace("{{name}}", name) .replace("{{category}}", category) .replace("{{detail}}", detail); GmailApp.sendEmail(email, subject, "", { htmlBody: body });
getMessage().getSubject()/getBody()
: 下書きメールの件名・本文を取得- 本文内の
{{name}}
などを回答内容で置き換え GmailApp.sendEmail(...)
: 回答者宛に下書きをもとにメールを自動送信
- 回答シートへの送信日時記録
-
formSheet.getRange(lastRow, 6).setValue(new Date());
- 回答シートのF列(6列目)にメール送信日時を記録します。

スクリプトを書いたら、名前を付けて保存します。

実行ボタンをクリックして、「権限の確認(承認)」を行います。
これは、自動化スクリプトが「このGoogleアカウントで本当にスプレッドシートやGmailを操作して良いですか?」という安全確認を行うもので、最初の1回だけ実施します。
許可が完了すると、以降はトリガー経由でもスクリプトが実行されるようになります。

なお、実行ボタンから実行するとエラー表示になりますが特に問題ありません。
(トリガーで実行するため)
トリガーの設定

エディタ画面の左側メニューから「時計マーク(トリガー)」をクリックします。

「トリガーを追加」または「新しいトリガーを作成します」をクリックします。

- 「実行する関数を選択」
-
onFormSubmit
を選択します。 - 「実行するデプロイを選択」
-
Head
が表示されているのでそのままでOKです。 - 「イベントのソースを選択」
-
スプレッドシートから
を選択します。 - 「イベントの種類を選択」
-
フォーム送信時
を選択します。

保存をクリックして、トリガー設定完了となります。
トリガー設定時も初回のみ、権限の確認ダイアログが表示されます。
画面の案内に従ってGoogleアカウントで「許可」を選択します。
これでGoogleフォームに回答があった際、返信メールが自動で送られます。
Googleフォーム回答結果

自動返信メール

注意事項
- 下書きメールの件名とスクリプトのキーワードを合わせる
Gmailの下書きメールの件名に、スクリプトで指定したキーワードが含まれていることをご確認ください。
(例:「お問い合わせ受付のご案内」)
一致していない場合、自動返信メールが送信されません。 - スプレッドシートの列順に注意
スクリプト内で参照するresponses[1]
(メールアドレス)、responses[2]
(お名前)などは、スプレッドシートの列の順番に合わせて設定する必要があります。
フォームやシートの設計を変えた場合は、スクリプトも見直しが必要です。 - Googleフォームの公開状態を確認
Googleフォームは「公開」しないと回答を受け付けることができません。
作成後は「公開」ボタンを押し、回答受付可能な状態にしてください。 - 大量送信時のGmail制限
Gmailには1日あたりの送信上限があります。大量送信する場合はご注意ください。
個人アカウント:100通/日
Google Workspaceユーザー:1,500通/日
まとめ
GoogleフォームとGoogle Apps Script、Gmail下書きを組み合わせることで、問い合わせや申込みに対して自動返信メールを手軽に導入できるようになります。
あらかじめ用意したテンプレートに回答内容を差し込めるので、確実な受付対応が可能です。
また、一度設定しておけばフォーム送信からメール送信まで自動で完結し、作業負担を減らすことができます。
フォームやスクリプトは業務や用途に合わせてカスタマイズができるため、実際のケースに合わせてご活用ください。
▶ 業務効率化をさらに深めたい方へ|Udemyの動画講座のご紹介
スプレッドシートやGAS、Google Workspaceは、動画で体系的に学ぶことで理解がぐっと深まり、実務にもすぐ活かせます。
文章だけでは分かりづらい操作や使い方も、画面を見ながら学べるため初心者の方にもおすすめです。
スキマ時間を活用して、仕事に役立つスキルを効率よく習得してみませんか?
弊社では、Google Apps Script(GAS)を活用した業務効率化サポートのほか、ITツールの導入支援やIT導入補助金の申請サポートも行っております。
ぜひお気軽にご相談ください。貴方の業務改善を全力でサポートいたします。
コメント