Googleフォームの回答メール通知を、GAS(Google Apps Script)で自動化する方法を解説します。標準の通知機能と違い、回答内容そのものをメールで受け取れるのが特長です。
「フォームに回答が来たのに気づくのが遅れた」「通知メールを開いても中身が分からず、結局スプレッドシートを見に行く」——こうした手間は、GASを使えば一度の設定でなくせます。
この記事では、プログラミング未経験でも進められるよう、コピペで動くコードと画面手順をセットで紹介します。さらに、私が実際に設定して詰まった新しいGoogleフォームUI特有の落とし穴まで先回りで解説します。所要時間は15〜20分ほどです。

GASでフォーム通知を作るメリット
結論から言うと、GASを使う最大のメリットは「回答内容つきの通知を、好きなアドレスに自動で送れる」ことです。
Googleフォームにも標準の通知機能はあります。ただし標準通知は「新しい回答がありました」と知らせるだけで、回答の中身は含まれません。結局フォームやスプレッドシートを開いて確認する必要があり、ひと手間残ります。
GASなら、回答が送信された瞬間に次のような通知を自動送信できます。
- 回答者が入力した項目名と回答内容をそのまま本文に整形
- 件名に回答日時(日本時間)を自動で付与
- 通知先は自分以外のアドレスやチーム共有アドレスにも設定可能
たとえば問い合わせフォームなら、担当者が回答内容をメールだけで把握でき、対応が速くなります。標準機能の「来たことだけ分かる」から、「来た内容まで分かる」へ。これがGAS化の価値です。
事前に必要なもの
準備するものはとてもシンプルです。
- Googleアカウント(無料のもので問題ありません)
- Googleフォーム(この記事の中で新規作成します)
- 所要時間:15〜20分
プログラミングの知識は不要です。この記事のコードをコピーして貼り付けるだけで動きます。GASはGoogleアカウントだけで使え、ブラウザ上で完結します。そのため特別なソフトのインストールもいりません。
実装手順
ここからは実際に、Googleフォームの回答をメール通知する仕組みを作っていきます。手順は5ステップです。
① Googleフォームを作る
まず通知のもとになるフォームを用意します。
- forms.google.com を開き、「空白のフォーム」を選びます
- 質問を2つ作ります(例:「お名前」=記述式、「お問い合わせ内容」=段落)
- フォームは自動保存されるので、保存操作は不要です
質問の数や種類は自由です。あとから増やしても、通知のコードはそのまま動きます。
② スクリプトエディタを開く
次に、自動化のコードを書く「スクリプトエディタ」を開きます。
- フォーム編集画面の右上「⋮」(縦三点メニュー)をクリックします
- 「Apps Script(スクリプト エディタ)」を選択します
- 別タブでエディタが開きます
⚠️ ここで「現在ファイルを開くことができません」と出たら
これは私も実際に詰まったポイントです。原因のほとんどはGoogleアカウントの複数同時ログインです。Apps Scriptは複数アカウントにログインした状態に弱く、エディタが開けないことがあります。
解決策は、シークレットウィンドウ(Chromeなら Ctrl+Shift+N)で1つのアカウントだけログインして開くことです。これで一発で解決しました。広告ブロッカー系の拡張機能が原因のこともあるため、その切り分けにもシークレットウィンドウが有効です。
③ 通知用のコードを貼る
エディタに最初から書かれている function myFunction() {} をすべて削除し、次のコードを貼り付けます。
function onFormSubmit(e) {
try {
var itemResponses = e.response.getItemResponses();
var timestamp = e.response.getTimestamp();
var body = "新しい回答が届きました。\n\n";
itemResponses.forEach(function(item) {
body += item.getItem().getTitle() + ": " + item.getResponse() + "\n";
});
var subject = "新規フォーム回答通知 - " +
Utilities.formatDate(timestamp, "JST", "yyyy/MM/dd HH:mm");
GmailApp.sendEmail("あなたのアドレス@example.com", subject, body);
Logger.log("通知メールを送信しました: " + timestamp);
} catch (error) {
Logger.log("エラー: " + error.toString());
}
}
貼り付けたら、GmailApp.sendEmail の中の "あなたのアドレス@example.com" を、通知を受け取りたい自分のメールアドレスに書き換えてください。最後に Ctrl+S で保存します(プロジェクト名は任意でかまいません)。
コードの中身を簡単に説明します。getItemResponses() で回答の各項目を取得し、項目名と回答を1行ずつ本文に追加しています。Utilities.formatDate で日時を日本時間に整形し、件名に入れています。try...catch は、万一エラーが起きてもログに残すための安全装置です。
④ トリガーを設定する
コードは「いつ実行するか」を決めないと動きません。フォーム送信時に自動実行されるよう、トリガーを設定します。
- エディタ左側の時計アイコン(トリガー)をクリックします
- 右下の「トリガーを追加」をクリックします
- 実行する関数を
onFormSubmit、イベントのソースをフォームから、イベントの種類をフォーム送信時に設定します - 「保存」をクリックします
これで「フォームが送信されたら onFormSubmit を実行する」という自動化のスイッチが入ります。
⑤ 権限を承認する
トリガーを保存すると、Googleアカウントの認証画面が表示されます。
- 自分のアカウントを選択します
- 「このアプリはGoogleで確認されていません」という警告が出ます(自作スクリプトなので正常です)
- 左下の「詳細」→「(プロジェクト名)に移動(安全ではないページ)」をクリックします
- 「許可」をクリックします
この警告は、自分で作ったスクリプトに対して必ず表示されるものです。内容を理解した上で許可すれば問題ありません。
動作確認でつまずく2つの罠
ここまでで実装は完了です。しかし、いざ動作確認しようとすると、新しいGoogleフォームのUI特有の落とし穴が2つあります。私も実際にここで止まりました。古い解説記事のとおりに進めると詰まるので、注意してください。
罠1:回答を受け付けるには「公開」ボタンが必要
プレビューしようとすると「このフォームでは回答を受け付けていません」と表示されることがあります。
以前のGoogleフォームには「回答を受付中」というトグルスイッチがありましたが、新しいUIではこのトグルは廃止されました。現在は、画面右上の「公開」ボタンを押してフォームを公開しないと、回答を受け付けられません。
ネット上の多くの記事は今もトグルを案内していますが、それは現行のUIには存在しません。「回答を受付中のスイッチが見つからない」と感じたら、右上の「公開」ボタンを探してください。公開すると、回答の受け付けが始まります。
罠2:プレビューでは送信できない
公開したあと、編集画面のプレビュー(目のアイコン)から回答を送ろうとすると、「プレビューモードではフォームを送信できません」と表示されます。
プレビューはあくまで見た目の確認用で、実際の送信はできません。テスト送信するには、回答者が実際に使う本物のフォームを開く必要があります。
- 画面右上のリンクアイコン、または「送信」ボタンから回答用リンクを取得します
- そのリンクを新しいタブで開きます
- 表示された本物のフォームに入力して「送信」します
これで回答が送信され、設定したアドレスに通知メールが届きます。私もこの手順で、回答送信から数秒以内に内容つきの通知メールを受信できました。
応用:もっと便利にする
なお、同じ GmailApp.sendEmail を使えば、管理者への通知だけでなくフォームに回答した人へ自動で返信メールを送ることもできます。手順はGoogleフォームの回答者に自動返信メールを送る方法(GAS)で解説しています。
なお、個人ではなくチームで受け取るなら、SlackやDiscordへ通知する方法も便利です。Googleフォーム回答をSlack/Discordへ通知する方法で、Incoming Webhookを使った実装を解説しています。
基本の通知ができたら、次のようなカスタマイズで実用度が上がります。
- 通知先を変える:
sendEmailのアドレスをチーム共有アドレスにすれば、担当者全員へ通知できます - 件名を分かりやすく:件名に回答者名や問い合わせ種別を含めると、受信トレイで一目で判別できます
- HTMLメールにする:本文を装飾して見やすくできます
- 回答者へ自動返信する:フォームでメールアドレスを収集すれば、回答者にも自動で受付完了メールを送れます
- 定期実行と組み合わせる:時間主導トリガーと組み合わせ、毎朝その日の集計を送るといった応用も可能です
こうした「回答通知」「自動返信」「定期レポート」などの実用スクリプトを、コピペで使えるかたちでまとめたテンプレート集も用意しています。ゼロから書かずに業務へ取り入れたい方は活用してください。
🚀 フォーム業務の自動化を、目的に合わせて選べます
「回答通知・自動返信・集計」の手作業をなくす方法を、2つのかたちで用意しています。
🛠️ 作ってほしい人はこちら|Googleフォーム自動化をGASで構築代行(ココナラ)
あなたのフォームに合わせて、動く状態でお渡しします。まずは無料でご相談ください。
📦 自分でやる人はこちら|コピペで動く GAS自動化テンプレ集(note)
実機検証済みの5本+つまずき対策。ゼロから書かずに取り入れられます。
メールではなくLINEにリアルタイム通知したい場合は、Googleフォームの回答をLINEへ自動通知する方法で手順を解説しています。あわせて読むと、用途に合わせて通知先を選べます。
まとめ
GASを使ったGoogleフォームの回答メール通知について解説しました。要点を整理します。
- 標準通知と違い、GASなら回答内容つきの通知を好きなアドレスに送れる
- 実装はフォーム作成 → コード貼り付け → トリガー設定 → 権限承認の5ステップ
- スクリプトエディタが開けないときはシークレットウィンドウで解決できる
- 新UIでは「公開」ボタンを押さないと回答を受け付けない(旧トグルは廃止)
- テスト送信は回答用リンクから(プレビューでは送れない)
まずはこの記事のコードをコピーして、ご自身のフォームで動かしてみてください。一度仕組みを作れば、あとは何もしなくても回答が自動で届くようになります。
さらに幅広い業務をGASで自動化したい方は、コピペで使えるテンプレート集もあわせてご覧ください。最後までお読みいただき、ありがとうございました。


コメント