Googleフォームの回答をメール通知する方法|GASでコピペ実装【2026年最新UI対応】

Googleフォームの回答を自動メール通知する方法(GAS) AI自動化

Googleフォームの回答メール通知を、GAS(Google Apps Script)で自動化する方法を解説します。標準の通知機能と違い、回答内容そのものをメールで受け取れるのが特長です。

「フォームに回答が来たのに気づくのが遅れた」「通知メールを開いても中身が分からず、結局スプレッドシートを見に行く」——こうした手間は、GASを使えば一度の設定でなくせます。

この記事では、プログラミング未経験でも進められるよう、コピペで動くコードと画面手順をセットで紹介します。さらに、私が実際に設定して詰まった新しいGoogleフォームUI特有の落とし穴まで先回りで解説します。所要時間は15〜20分ほどです。

GASでフォーム回答を自動メール通知する実装5ステップの図
GASでフォーム回答を自動メール通知する5ステップ

GASでフォーム通知を作るメリット

結論から言うと、GASを使う最大のメリットは「回答内容つきの通知を、好きなアドレスに自動で送れる」ことです。

Googleフォームにも標準の通知機能はあります。ただし標準通知は「新しい回答がありました」と知らせるだけで、回答の中身は含まれません。結局フォームやスプレッドシートを開いて確認する必要があり、ひと手間残ります。

GASなら、回答が送信された瞬間に次のような通知を自動送信できます。

  • 回答者が入力した項目名と回答内容をそのまま本文に整形
  • 件名に回答日時(日本時間)を自動で付与
  • 通知先は自分以外のアドレスやチーム共有アドレスにも設定可能

たとえば問い合わせフォームなら、担当者が回答内容をメールだけで把握でき、対応が速くなります。標準機能の「来たことだけ分かる」から、「来た内容まで分かる」へ。これがGAS化の価値です。

事前に必要なもの

準備するものはとてもシンプルです。

  • Googleアカウント(無料のもので問題ありません)
  • Googleフォーム(この記事の中で新規作成します)
  • 所要時間:15〜20分

プログラミングの知識は不要です。この記事のコードをコピーして貼り付けるだけで動きます。GASはGoogleアカウントだけで使え、ブラウザ上で完結します。そのため特別なソフトのインストールもいりません。

実装手順

ここからは実際に、Googleフォームの回答をメール通知する仕組みを作っていきます。手順は5ステップです。

① Googleフォームを作る

まず通知のもとになるフォームを用意します。

  1. forms.google.com を開き、「空白のフォーム」を選びます
  2. 質問を2つ作ります(例:「お名前」=記述式、「お問い合わせ内容」=段落)
  3. フォームは自動保存されるので、保存操作は不要です

質問の数や種類は自由です。あとから増やしても、通知のコードはそのまま動きます。

② スクリプトエディタを開く

次に、自動化のコードを書く「スクリプトエディタ」を開きます。

  1. フォーム編集画面の右上「⋮」(縦三点メニュー)をクリックします
  2. Apps Script(スクリプト エディタ)」を選択します
  3. 別タブでエディタが開きます

⚠️ ここで「現在ファイルを開くことができません」と出たら

これは私も実際に詰まったポイントです。原因のほとんどは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 は、万一エラーが起きてもログに残すための安全装置です。

④ トリガーを設定する

コードは「いつ実行するか」を決めないと動きません。フォーム送信時に自動実行されるよう、トリガーを設定します。

  1. エディタ左側の時計アイコン(トリガー)をクリックします
  2. 右下の「トリガーを追加」をクリックします
  3. 実行する関数を onFormSubmit、イベントのソースをフォームから、イベントの種類をフォーム送信時に設定します
  4. 「保存」をクリックします

これで「フォームが送信されたら onFormSubmit を実行する」という自動化のスイッチが入ります。

⑤ 権限を承認する

トリガーを保存すると、Googleアカウントの認証画面が表示されます。

  1. 自分のアカウントを選択します
  2. このアプリはGoogleで確認されていません」という警告が出ます(自作スクリプトなので正常です)
  3. 左下の「詳細」→「(プロジェクト名)に移動(安全ではないページ)」をクリックします
  4. 「許可」をクリックします

この警告は、自分で作ったスクリプトに対して必ず表示されるものです。内容を理解した上で許可すれば問題ありません。

動作確認でつまずく2つの罠

ここまでで実装は完了です。しかし、いざ動作確認しようとすると、新しいGoogleフォームのUI特有の落とし穴が2つあります。私も実際にここで止まりました。古い解説記事のとおりに進めると詰まるので、注意してください。

罠1:回答を受け付けるには「公開」ボタンが必要

プレビューしようとすると「このフォームでは回答を受け付けていません」と表示されることがあります。

以前のGoogleフォームには「回答を受付中」というトグルスイッチがありましたが、新しいUIではこのトグルは廃止されました。現在は、画面右上の「公開」ボタンを押してフォームを公開しないと、回答を受け付けられません。

ネット上の多くの記事は今もトグルを案内していますが、それは現行のUIには存在しません。「回答を受付中のスイッチが見つからない」と感じたら、右上の「公開」ボタンを探してください。公開すると、回答の受け付けが始まります。

罠2:プレビューでは送信できない

公開したあと、編集画面のプレビュー(目のアイコン)から回答を送ろうとすると、「プレビューモードではフォームを送信できません」と表示されます。

プレビューはあくまで見た目の確認用で、実際の送信はできません。テスト送信するには、回答者が実際に使う本物のフォームを開く必要があります。

  1. 画面右上のリンクアイコン、または「送信」ボタンから回答用リンクを取得します
  2. そのリンクを新しいタブで開きます
  3. 表示された本物のフォームに入力して「送信」します

これで回答が送信され、設定したアドレスに通知メールが届きます。私もこの手順で、回答送信から数秒以内に内容つきの通知メールを受信できました。

応用:もっと便利にする

なお、同じ GmailApp.sendEmail を使えば、管理者への通知だけでなくフォームに回答した人へ自動で返信メールを送ることもできます。手順はGoogleフォームの回答者に自動返信メールを送る方法(GAS)で解説しています。

なお、個人ではなくチームで受け取るなら、SlackやDiscordへ通知する方法も便利です。Googleフォーム回答をSlack/Discordへ通知する方法で、Incoming Webhookを使った実装を解説しています。

基本の通知ができたら、次のようなカスタマイズで実用度が上がります。

  • 通知先を変えるsendEmail のアドレスをチーム共有アドレスにすれば、担当者全員へ通知できます
  • 件名を分かりやすく:件名に回答者名や問い合わせ種別を含めると、受信トレイで一目で判別できます
  • HTMLメールにする:本文を装飾して見やすくできます
  • 回答者へ自動返信する:フォームでメールアドレスを収集すれば、回答者にも自動で受付完了メールを送れます
  • 定期実行と組み合わせる:時間主導トリガーと組み合わせ、毎朝その日の集計を送るといった応用も可能です

こうした「回答通知」「自動返信」「定期レポート」などの実用スクリプトを、コピペで使えるかたちでまとめたテンプレート集も用意しています。ゼロから書かずに業務へ取り入れたい方は活用してください。

🚀 フォーム業務の自動化を、目的に合わせて選べます

「回答通知・自動返信・集計」の手作業をなくす方法を、2つのかたちで用意しています。

🛠️ 作ってほしい人はこちら|Googleフォーム自動化をGASで構築代行(ココナラ)

あなたのフォームに合わせて、動く状態でお渡しします。まずは無料でご相談ください。

📦 自分でやる人はこちら|コピペで動く GAS自動化テンプレ集(note)

実機検証済みの5本+つまずき対策。ゼロから書かずに取り入れられます。

メールではなくLINEにリアルタイム通知したい場合は、Googleフォームの回答をLINEへ自動通知する方法で手順を解説しています。あわせて読むと、用途に合わせて通知先を選べます。

まとめ

GASを使ったGoogleフォームの回答メール通知について解説しました。要点を整理します。

  1. 標準通知と違い、GASなら回答内容つきの通知を好きなアドレスに送れる
  2. 実装はフォーム作成 → コード貼り付け → トリガー設定 → 権限承認の5ステップ
  3. スクリプトエディタが開けないときはシークレットウィンドウで解決できる
  4. 新UIでは「公開」ボタンを押さないと回答を受け付けない(旧トグルは廃止)
  5. テスト送信は回答用リンクから(プレビューでは送れない)

まずはこの記事のコードをコピーして、ご自身のフォームで動かしてみてください。一度仕組みを作れば、あとは何もしなくても回答が自動で届くようになります。

さらに幅広い業務をGASで自動化したい方は、コピペで使えるテンプレート集もあわせてご覧ください。最後までお読みいただき、ありがとうございました。

コメント

タイトルとURLをコピーしました