Googleフォームの回答を“中身ごと”自動でメール通知【コピペOK・コードは書けなくて大丈夫】

つまずき帳

「そろそろ誰か、フォームに答えてくれたかな」

——そう思って、スプレッドシートを開く。来ていない。少し経って、また開く。やっぱり来ていない。

この、何度もタブを開いては閉じる感じ。地味に、しんどいですよね。

はじめまして。「定時で帰る開発部」の、最初の実践レシピです。部員はわたしとAIだけ。わたしはプログラミングが正直サッパリの現役教員で、コードは1行も書けません。書くのはAI。わたしは、それを貼って、ボタンを押すだけ。今日はそのやり方で、この「フォーム、何度も見にいく問題」をひとつ片付けます。

フォームの確認、地味にしんどい

Googleフォームを使っていると、こんな時間が積み重なります。

「そろそろ来たかな」と表を開く。来ていない。少し経って、また開く。べつに難しい作業じゃない。ただ、何度も見にいくこの感じが、地味にしんどい。

しかも、ずっと張りついているわけにもいかないから、たまに見落とす。「あ、3日前に来てたんだ…」と気づいて、すっと血の気が引く。相手はとっくに送ってくれていたのに、こっちが気づいていなかった。この「待たせてしまった」感じが、地味にいちばん効くんですよね。

——これ、少し前までのわたしです。「自分はITが苦手だから」と決めつけて、フォームのたびに何度もタブを開いては閉じて、を繰り返していました。

創刊号で、いきなり完成形をお見せしました。フォームに回答が来た瞬間、整った通知メールが勝手に届く、あれです。「作り方も残します」と約束したので、今日はその手順を、このとおりやれば再現できる形で置いていきます。所要10分くらい。難しい言葉は出てきません。

完成形:回答の“中身ごと”メール通知が届く

ゴールはこれです。フォームに誰かが回答すると、こんなメールが自動で届きます。

実際に届いた通知メール。件名と本文に、回答の項目と内容が並んでいる
↑ 実際に届く通知メール。回答の“中身”が、項目ごとに並んで届きます。

回答が来たことも、中身も、これまでで何件目かも、メールひとつで分かります。もうスプレッドシートを見張らなくていい。ほっといても、勝手に通知が来て終わっている状態です。

念のため、先に言っておきます。わたしはコードを1行も書いていません。 AIに書いてもらった文章を、決められた場所に貼って、最初に一度だけ「許可」しただけです。

ひとつだけ、正直に。「ただ通知が欲しいだけ」なら、実はGoogleフォーム標準のメール通知でも足ります。ただし届くのは「新しい回答があります」というお知らせと確認リンクが中心で、回答の中身そのものは基本的にメールに入りません(中身はフォームを開いて見る形です)。だからこの記事は「通知が万能です」とは言いません。お伝えしたい価値はふたつ。(1) 中身まで、自分の好きな形で届けられること。(2) これが「AIに書かせて、貼って、動かす」という自動化の“第一歩”になること——こっちが本題です。

手順:フォームの回答を自動でメール通知する

用意するのはGoogleアカウントだけ。では、いきます。

1. テスト用のGoogleフォームを作る
いきなり本番で試すと不安なので、まずは練習用を1つ。本番の個人情報は入れず、ダミー(お名前=テストたろう、など)でいきましょう。

2. 回答先のスプレッドシートにつなぐ
フォーム編集画面の「回答」タブ →「スプレッドシートにリンク」(緑のアイコン)。これで、回答が貯まる表ができます。

3. その表で「拡張機能 > Apps Script」を開く
いま作ったスプレッドシートのメニューから、拡張機能 → Apps Script。新しいタブで、コードを書く画面が開きます。(“Apps Script”が、創刊号で言った「小さな自動係さんへの指示書」を置く場所です。)

4. コードを貼って、保存する
次に出てくるコードを全部コピーして、開いた画面に貼り付け、フロッピーのアイコン(💾)を押して保存します(Cmd + S でもOK)。貼り方のコツは、後の「つまずき②」で必ず触れます。

5. 「初期設定」を選んで、一度だけ実行する
画面の上のほうにある選択メニュー(ドロップダウン)初期設定 を選び、その右の ▶ 実行ボタンを押します。これは「フォームに回答が来たら自動で動いてね」というスイッチを入れる作業で、最初の一度だけです。
(このとき初めて「承認」の画面が出ます。つまずきやすいポイントなので、記事の後半で画像つきで一歩ずつご案内します。)

6. フォームにテスト回答してみる → 通知メールが届けば完成!
以降は、何もしなくてずっと自動です。

貼り付けるコード

// === 設定(ここだけ変えればOK)===
const 通知先メール = '';   // 空なら自分のアドレスに届きます
const 通知の件名   = '【新着】フォーム回答が届きました';

// フォーム送信時に“自動で”動く本体
function onFormSubmit(e) {
  const sheet   = e.range.getSheet();
  const headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
  const values  = e.values;                 // 今回の回答(1行ぶん)
  const total   = sheet.getLastRow() - 1;   // 見出しを除いた件数(=通算の回答数)

  const lines = headers.map((h, i) => `${h}:${values[i] || ''}`);
  const body  = `新しい回答が届きました(これで ${total} 件目)。\n\n` + lines.join('\n');

  const to = 通知先メール || Session.getActiveUser().getEmail();
  MailApp.sendEmail(to, `${通知の件名}(${total}件目)`, body);
}

// 最初に1回だけ実行:自動発火をセット
function 初期設定() {
  ScriptApp.getProjectTriggers()
    .filter(t => t.getHandlerFunction() === 'onFormSubmit')
    .forEach(t => ScriptApp.deleteTrigger(t));   // 二重登録を防ぐ

  ScriptApp.newTrigger('onFormSubmit')
    .forSpreadsheet(SpreadsheetApp.getActive())
    .onFormSubmit()
    .create();

  SpreadsheetApp.getActive().toast('セットアップ完了!フォームに回答すると通知が届きます。');
}

このコードは、AIに「Googleフォームの回答が来たら、内容を整えて自分にメール通知するものを作って」とお願いすれば、書いてくれます。中身が分からなくて大丈夫。このまま貼ってOKです。気になる人向けに、何をしているかだけ一言でいうと——「回答を“項目:内容”の形に整えて、自分宛てに送る」。それだけです。

設定で変えられるのは2か所だけ。通知先のメール(空っぽのままなら、自分のアドレスに届きます)と、メールの件名。ここだけ、好みで触ってもOKです。件名のうしろに付く「(○件目)」は、コードが自動で足してくれます。

つまずき先回り:許可の画面と、貼り付け事故

ここが、この記事のいちばん大事なところかもしれません。わたしが実際に詰まった2か所を、先に共有します。詰まっても、こわれていません。

つまずき①:許可の画面で、一瞬ひるむ

手順5で「初期設定」を実行すると、Appsスクリプトがこう聞いてきます。

「承認が必要です」というダイアログが表示され「権限を確認」ボタンがある画面
↑「初期設定」を実行した直後に出る画面。あわてなくて大丈夫です。

承認が必要です」。……出ましたね、これ。最初はちょっとドキッとしますよね。わたしもそうでした。でもこれは、“これから自動で動かすために、あなたの許可をください”という確認なだけ。こわがらず、「権限を確認」を押します。

次に、自分のGoogleアカウントを選ぶ画面が出ます。いつものアカウントを選んで、「次へ」

そして——この記事でいちばん大事な画面が、これです。

Googleの許可画面。アクセスを許可する情報のチェックボックスがまだオフの状態
↑ ここが最大の注意点。このまま「続行」を押すと、動きません。

アクセスできる情報を選択してください」。ここでいちばんやりがちなのが、チェックを入れずに「続行」を押してしまうこと。そうすると、必要な許可が渡らず、通知が動いてくれません。

正解はかんたん。いちばん上の「すべて選択」にチェックを入れるだけ。すると、下の項目が全部オンになります。

Googleの許可画面で「すべて選択」にチェックを入れ、すべての項目がオンになった状態
↑「すべて選択」にチェック → 全部に✓が入った状態で「続行」。

この「全部にチェック」の状態にして、「続行」。これで許可は完了です。

ちなみに、求められている許可はこんな中身です。どれも今回の「回答が来たら、中身を整えて自分にメールする」仕組みに、ちゃんと必要なものだけです。

  • スプレッドシートの参照・編集 → 届いた回答を読み取って、メール本文に入れるため。
  • フォームの表示と管理 → どのフォームの回答かを扱うため。
  • メールの送信 → 自分あてに通知メールを出すため。
  • 自分がいないときに実行 → 回答が来た“その瞬間”に、自分が見ていなくても自動で動くため。

こわい権限を、黙って渡しているわけではありません。

許可が終わると、スプレッドシートのほうに、こんな小さな表示が出ます。これが出たら——セットアップ完了です。おつかれさまでした。

スプレッドシートに「セットアップ完了!フォームに回答すると通知が届きます。」と表示された画面
↑ この表示が出れば成功。あとは何もしなくて大丈夫です。

【もし“赤っぽい警告”が出たら】 環境によっては(とくに個人の @gmail.com の場合)、上の画面の前に「このアプリは Google で確認されていません」という赤っぽい画面が出ることがあります。これも正常なので、安心してください。意味は「あなたが(AIに書かせて)たった今つくったものは、まだGoogleの審査を受けていません」というだけ。自分専用に作って自分で動かすぶんには、ふつうに出る画面です。進み方は——「詳細」をクリック →「(あなたのプロジェクト名)(安全でないページ)に移動」をクリック。すると、上と同じ許可の画面にたどり着きます。「安全でないページ」とありますが、“危険”ではなく“Googleがまだ審査していない”という意味です。

つまずき②:貼ったのに、一覧に「初期設定」が出てこない

手順5で選択メニューを見たとき、初期設定 が見当たらない。「あれ、消えた…?」と固まる——わたしが、まさにこれでした。

原因は、最初から入っている空っぽの見本(英語で myFunction と書かれた部分。これは英語の名前というだけで、気にしなくて大丈夫です)の“中”に、コードを貼ってしまったこと。新しい紙に書けばよかったのに、見本の余白に上書きしてしまった、という感じです。

直し方は拍子抜けするほど簡単です。画面の中を全部選んで(Cmd / Ctrl + A)、いったん消して、まっさらな状態に貼り直すだけ。これで 初期設定 がちゃんと一覧に出てきます。

これで、何が変わる?

もう、スプレッドシートを開いて「まだか」とがっかりすることも、3日後に「やってしまった」と青くなることもありません。あの時間と、あの小さな不安。気づいたら、まるごと無くなっていました。

ひとつは小さいです。でも、こういう「めんどくさい」を一個ずつ片付けていくと、定時で帰るに、一歩ずつ近づきます。

そして今日いちばん大きかったのは、通知そのものより——「AIに頼んで、貼って、動かす」を、自分の手で一回やりきれたこと。これができれば、次からは題材が変わるだけです。

次回予告——公開しました。 この通知をLINEに飛ばす版はこちら:Googleフォームの回答をLINEに自動通知【LINE Notify終了後もコピペOK】。メールよりスマホで気づきやすくて、便利です。

「自分にはどうせ無理」と思っている人の、最初の一歩になればうれしいです。詰まったところがあれば、コメントで教えてください。一緒に抜けましょう。

▶ この開発部の入口(創刊号)はこちら:創刊号を読む

その面倒な作業、Google×AIで自動化。
部員は、わたしとAI。

コメント

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