【2026年版】Googleフォームで自動返信メールを設定する方法。コピペで使えるApps Script付き
Googleフォームで回答者へ自動返信メールを送りたいときに。標準機能でできる回答コピー送信と、Apps Scriptで本文を自由に作る方法を分けて解説します。
Googleフォームで問い合わせや申込を受けると、送った人に「受け付けました」と返したくなります。標準機能でも回答のコピーは送れますが、件名や本文をきちんと整えたい場合は少し物足りません。この記事では、まず標準機能でできる範囲を確認し、そのうえでApps Scriptを使った自動返信メールの作り方をまとめます。

目次
標準機能でできるのは、回答コピーの送信

Googleフォームには、メールアドレスを収集したうえで回答者へ回答のコピーを送る機能があります。設定画面の「回答」からメールアドレスの収集を有効にし、回答のコピーを送信する設定にすれば、コードを書かずに受付メールに近いことができます。
ただし、これはあくまで回答内容の控えです。会社名を入れた件名、返信目安、担当部署からの案内、資料ダウンロードURLのような本文を自由に作りたい場合は、標準機能だけでは足りないことがあります。問い合わせフォームとして使うなら、次のApps Script方式を検討します。
- 回答者のメールアドレスを収集する設定にする
- まずは回答コピーで足りるか確認する
- 本文や件名を変えたい場合はApps Scriptを使う
コピペ用のApps Script
Googleフォームの回答をスプレッドシートに保存している場合、フォーム送信時にApps Scriptを動かしてメールを送れます。下のコードは、質問名が「メールアドレス」「お名前」「お問い合わせ内容」になっている前提です。自分のフォームに合わせて、質問名と本文だけ変えてください。
コードは、回答先のスプレッドシートを開き、「拡張機能」からApps Scriptを開いて貼り付けます。保存したら、左側のトリガーから関数を `sendAutoReply`、イベントの種類を「フォーム送信時」にして追加します。初回だけGoogleアカウントの承認が必要です。
function sendAutoReply(e) {
const values = e.namedValues;
const email = getAnswer(values, "メールアドレス");
const name = getAnswer(values, "お名前") || "お客様";
const message = getAnswer(values, "お問い合わせ内容");
if (!email) {
return;
}
const subject = "お問い合わせを受け付けました";
const body = `${name} 様
お問い合わせありがとうございます。
以下の内容で受け付けました。
------------------------------
お名前: ${name}
メールアドレス: ${email}
お問い合わせ内容:
${message}
------------------------------
内容を確認し、担当者よりご連絡いたします。
通常、2営業日以内に返信いたします。
このメールは自動送信です。
`;
MailApp.sendEmail({
to: email,
subject: subject,
body: body,
name: "お問い合わせ受付"
});
}
function getAnswer(values, questionTitle) {
const answer = values[questionTitle];
return answer && answer.length > 0 ? answer[0] : "";
}- フォームの質問名とコード内の文字を完全に合わせる
- テスト送信して自分のメールアドレスに届くか確認する
- 初回実行時の権限承認を忘れない
トリガー設定でつまずきやすいところ
コードを貼っただけでは自動返信は動きません。Apps Scriptのトリガーで、実行する関数に `sendAutoReply` を選び、イベントのソースをスプレッドシート、イベントの種類をフォーム送信時にします。Google公式のApps Scriptでは、フォーム送信イベントで `namedValues` を使うと、質問名ごとに回答を取り出せます。
よくあるミスは、質問名のズレです。フォーム側が「メールアドレス」ではなく「メールアドレス(必須)」になっているだけでも、コードはメールアドレスを見つけられません。うまく届かないときは、まず質問名を見直します。
管理者にも通知したい場合
回答者への自動返信だけでなく、社内にも通知したい場合は、同じ関数の中で管理者宛のメールを追加できます。問い合わせ対応では、回答者向けと社内向けで本文を分けるほうが見やすいです。
社内通知には、フォームの回答先スプレッドシートへのリンクや、対応ルールを書いておくと便利です。ただし、個人情報を含む内容を複数人に転送する場合は、送信先を必要な範囲に絞ります。

MailApp.sendEmail({
to: "admin@example.com",
subject: "Googleフォームに新しい回答がありました",
body: `新しい問い合わせが届きました。
お名前: ${name}
メールアドレス: ${email}
お問い合わせ内容:
${message}
`
});送信数と運用の限界は先に見ておく
Apps Scriptのメール送信には、アカウントごとの送信上限があります。Google公式のMailAppにも、その日に送信できる残りの受信者数を確認するメソッドが用意されています。イベント申込やキャンペーンで一気に送信が増えるフォームでは、事前に上限を確認しておきます。
また、GoogleフォームとApps Scriptを組み合わせた運用は、質問名の変更、トリガーの停止、権限切れ、迷惑メール判定など、見る場所が少し増えます。小さな社内受付なら十分ですが、企業サイトの問い合わせ窓口として長く使うなら、回答保存、通知、確認画面までまとめて扱えるツールを選んだほうが説明しやすい場面もあります。
- 大量送信がありそうなフォームでは送信上限を確認する
- フォーム項目を変えたらApps Scriptも見直す
- 問い合わせ窓口では、回答保存と通知の両方をテストする
Formieなら、フォーム運用ごと分けられる
Googleフォームは手軽ですが、問い合わせフォームとして使い込むほど、確認画面、完了画面、回答管理、CSV出力、通知メールの扱いをどうするかが気になってきます。Apps Scriptで足せることもありますが、フォームごとにコードを持つと保守は少し重くなります。
Formieは、確認画面つきフォームを会員登録なしで作り始められ、公開URLやiframe埋め込み、回答管理、CSV出力まで扱えます。Googleフォームで自動返信メールの設定に悩んでいるなら、フォーム部分だけを別ツールに分ける判断もあります。

