【コピペOK】GASでGoogleフォームからの自動返信メールの作り方【スクリプト・文章付き】

GAS(Google Apps Script)講座

Google Apps Script(GAS)は、Googleが提供しているプログラミング言語。

JavaScriptというプログラミング言語をもとに作られています。

このGASを使うことでGoogleが提供している

  • Googleドライブ
  • Googleスプレッドシート
  • Gmail
  • Googleフォーム
  • Googleカレンダー

などの各種Googleサービスをより便利にできます。

今回は実装するのは、Google Apps Script(GAS)を使用して、Googleフォームからの自動返信メールを送る方法をご紹介。

初心者にも分かりやすいようにステップごとに操作を解説します。

サンプルコードも提供していますのでとりあえず動かしたいという方はそちらを利用すればすぐに、導入できます。

GASを使いこなし手軽に自動化して手作業などの無駄な作業を減らしていきましょう!

 

GASとは?何ができるの?初心者向け解説:Google Apps Scriptの基本と活用法
GASってなに?どんなことができるの?という疑問にお答えします!「承認が必要です」と表示された場合の対処法も紹介。
\ゲームで学ぶプログラミング/
独学でプログラミングを学んで開発者に!
Unity入門の森オリジナル本格ゲーム制作講座はこちら
本格ゲームの全ソースコード公開・画像&動画による解説付き

この記事で出来るようになること

Googleフォームの自動返信メールをオリジナルメールにできます。

もともと自動返信メールはあるのですが、自動返信の内容はフォームに回答した内容のコピー。

簡単な操作で設定できる点がメリットですが、本文が機械的で冷たい印象を与えます。

この機能を活用することで、フォーム送信の成功を感じさせると同時に、丁寧なフォローアップが評価されますよ。

Googleフォームからの自動返信メールの実装の流れ

今回は以下の流れで実装していきます。

実装の流れ
  • STEP1
    Googleフォームを準備

    Googleフォームを作っていきます。

    ブラウザはGoogle Chromeを使用してください。

  • STEP2
    自動返信メールのスクリプト作成

    AppsScriptで自動メールのスクリプトを作っていきます。

  • STEP3
    トリガーを設定

    いつのタイミングでメールを送信するかを設定します。

まずはGoogleフォームを準備しよう

Googleフォームに入力されたメールアドレスに向けてメールを自動的に送る機能を実装します。

そのためにまずは、Googleフォームにてメールアドレスを入力してもらうアンケートフォームを作成していきましょう。

Googleフォームとは?

Googleフォームは、Googleが提供する無料のオンラインアンケートツール。

簡単な操作でアンケートを作成することができ、配信、集計まで行うことができます。

アンケート調査、登録フォーム、イベントの申し込みフォームなど、さまざまな用途に使えるので大変便利です。

Googleフォームセットアップ手順

Googleフォームのセットアップは、以下の手順で行います。

Googleドライブにアクセス

ウェブブラウザからGoogleドライブ(https://www.google.com/intl/ja_jp/drive/)にアクセス。

「ドライブを開く」を押します。

ログインしていない方は、先にGoogleアカウントでログインをしておきましょう。

「ドライブを開く」と画像のような画面になります。

フォーム新規作成

新規ボタンをクリックしてフォームを選択します。

フォームを開いたときに「使い方ガイド」が出てきたらスキップを押してください

フォーム名を設定

無題のフォームをクリックするとフォーム名の編集ができます。

今回は、「メールアドレス入力フォーム」と入力します。

1つ目のアンケート項目の作成

無題の質問の箇所をクリックするとアンケート項目の設定情報が表示されます。

項目を「名前」として入力方法を「記述式」に変更します。

 

2つ目のアンケート項目の作成

[+]ボタンを押して2つ目のアンケート項目を追加します。

項目を「メールアドレス」として入力方法を「記述式」に変更します。

実際にアンケートなどで利用する際は、同じ手順で質問項目などを記述します。

回答結果を保存先設定

入力フォームの設定ができたので回答結果の保存先を設定します。

「回答」のタブをクリックして回答保存先設定画面に移動します。

「スプレットシートにリンク」をクリック。

「新しいスプレッドシートを作成」にチェックを入れて作成をクリック。

 

スプレッドシートに画面が切り替わりアンケート項目が1行目に表示されていれば回答先の設定完了です。

スプレッドシートに切り替わらない場合は「スプレッドシートで表示」を押してください。

このスプレットシートは、通常のスプレットシートと同じなので必要に応じてファイル名などを変更してください。

これでGoogleフォームの設定は完了です。

自動返信メールのスクリプト作成

Googleフォームと回答を格納するスプレットシートの準備ができました。

いよいよ自動返送メールのスクリプトを作成していきます。

AppsScriptを起動

先ほど作成したスプレットシートにて[拡張機能]-[AppsScript]の順でクリックします。

AppsScript画面に切り替わります。

もし次の画面のようにエラーで開けない場合はGoogleChromeブラウザのCookieを削除すると解消する場合があります。

  1. GoogleChrome を開き、右上のアイコン︙→ 設定 をクリックします。
  2. [プライバシーとセキュリティ] → [閲覧履歴データの削除] をクリックします。
  3. [Cookieと他のサイトデータ]にチェック。
  4. [データを削除] をクリックして確定します。

Cookieを削除したあとにもう一度AppsScript画面を開いてください。

 

まずは、簡単にAppsScript画面についてご説明します。

プロジェクト名:GASを管理する際に利用する名前をクリックすると変更可能。

ファイル一覧:プロジェクトに配置されているスクリプトファイルを確認可能。

各項目横の+ボタンを押すとファイルを新規で作成できます。

ツールバー:スクリプト作成時に必要な操作ボタンが集約。

メニュー:スクリプトエディタのメニュー。概要、エディタ、実行数、トリガー、設定の切り替えを行うことが可能。

エディターエリア:スクリプトファイルの編集を行うエリア。

手始めにプロジェクト名を変更してみましょう。

今回は、メール送信スクリプトなので「SendMailScript」に変更しましょう。

「無題のプロジェクト」をクリックし「プロジェクトの名前を変更」ポップアップを表示。

「プロジェクトタイトル」に「SendMailScript」と入力。

入力したら「名前の変更」をクリック。

無事プロジェクト名を変更できました。

メール送信プログラム

次はプログラムを記述していきましょう。

今回作成するプログラムは以下になります。

仕組みはどうでもいいのですぐに動かしたいという方はこちらをコピー&ペーストして次項に進んでいただければOKです

ではスクリプト作成の手順を説明していきます。

自動メール送信関数を作成

最初に関数を作成します。

関数とは、複数の処理を1つにまとめて記述したもの。

GASでは、この関数を呼び出して処理を実行します。

今回は、”sendMail“という名前の関数を作成していきます。

(もちろんsendMail以外の名前をつけても大丈夫です。)

エディタエリアに以下のように記述します。

これで関数の作成は完了です。

以降の記述は、全てこの関数の中括弧の中に記述していきます。

設定情報を記述

続いて、メールのタイトルや本文など設定情報を記述します。

今回自動で送るメールは、以下のような内容にしましょう。

項目
①件名 [アンケート自動返信]
②To フォーム入力のメールアドレス
③Cc なし
④Bcc なし
⑤送信元 hoge@example.com(自身のメールアドレス)
⑥送信元表示名 アンケート自動送信ユーザー
⑦本文 「Googleフォームへの登録を受け付けました。」という文章とGoogleフォームへ入力した名前とメールアドレス

以下のように記述しましょう。

変数”senduseraddress”と”sendername”には送信元のメールアドレスと表示名を入力します。

あなたのメールアドレスを、相手のメーラーで表示させたい表示名に変更して記載してください。

body変数に格納しているメール本文の末尾に記述している”\n”は改行コードでメール本文上では改行として処理されます。

Googleフォームの回答で入力された名前とメールアドレスは、スクリプト実行時に本文に挿入されます。

“to”の変数には、Googleフォームで入力された名前やメールアドレスを格納します。

スプレッドシートから情報取得処理を記述

次は、回答が格納されているスプレッドシートから必要な情報を取得します。

今回必要な情報は、メール送信先のメールアドレスと名前になります。

以下のように記述してみましょう。

この部分が今回のスクリプトで重要な処理となるので細かく説明してきます。

まずはこのスプレッドシートの情報取得に関する部分。

この範囲では、スプレッドシートから必要な情報を取得する準備をしています。

SpreadsheetApp.getActiveSheet関数は、スプレッドシートの情報を取得します。

このスクリプトでは、Googleフォーム結果が格納されているスプレッドシートの情報が取得され変数”sheet”に格納されます。

getLastRow、getLastColumn、getDataRangeは、それぞれスプレッドシートの最終行数、最終列数、値が入力されている範囲になります。

続いてのスプレッドシートから情報を取得する処理の部分。

for関数は、ループ関数と呼ばれる関数です。

今回は、列数だけループしたいので最終列数が格納されている”cols”を利用して最終列までループ処理を行っています。

列ごとに変数”col_name”に列名、”col_value”にGoogleフォームで入力された値を格納します。

getCell関数は、1つ目の引数に行数、2つ目の引数に列数を入力することでそのセルの値を取得できます。

取得した値は、加工して変数”body”に追記。

変数に値を末尾に追加する場合は、”body +=”のように記述することで末尾に値を追加します。

メール送信処理を追記

最後にメールを送信する処理を追記します。

メールの送信は、以下のように記述します。

メールの送信は、MailApp.sendEmail関数を利用することでメールを送信できます。

1つ目の引数には、宛先のメールアドレス、2つ目の引数には、件名、3つ目の引数には、本文、4つ目の引数には、CcやBccなどのオプションを設定します。

これでスクリプト作成は完了です。

作成ができたら保存ボタンをクリックして入力した内容を保存しましょう。

トリガー(実行タイミング)を設定

スクリプトを正しく動作させるためには、トリガーを設定する必要があります。

スクリプトエディタ画面にて以下の操作を行います。

 

コード.gsが選択されている状態でトリガーボタンをクリック

メニューが出ていない場合は左のアイコン一覧にカーソルをあわせます。

メニューが横から出てきます。

初回起動時のみ以下の画面が表示されるので「ダッシュボードを表示」を押します。

トリガーを追加をクリック

以下設定値でトリガーを設定して保存をクリック

[設定値]
実行する関数を選択:sendMail
実行するデプロイを選択:Head
イベントのソースを選択:スプレッドシートから
イベントの種類を選択:フォーム送信時

自作したスクリプトにトリガーを設定する場合は、セキュリティ警告がされるので許可します。ウェブブラウザ上部のURL欄にあるブロックアイコンをクリック

ポップアップとリダイレクトを常に許可するにチェックをいれ「完了」をクリック

※別画面が出た場合は下部参照。


スクリプトに対して権限の許可画面が表示されるので「許可する」をクリック

一覧に設定したトリガーが表示されればトリガー設定完了です。

別画面が出た場合の対応

もし「承認が必要です」と出てきたら権限を確認してください。

詳しくはこちらを参照。

GAS実行時「承認が必要です」「このアプリはGoogleで確認されていません」の対策まとめ
Google Apps Script使用時に出る「このアプリはGoogleで確認されていません」という警告の意味と対処法について詳しく解説します。セキュリティ警告の理由と、安全なスクリプト使用のためのステップバイステップガイドを提供し、Googleアカウントの安全を保つ方法を紹介します。

 

 

これでトリガー設定が完了しました。

動作確認

作成したスクリプトが正常に動作するか確認してみましょう。

Googleフォームの編集画面にてレビューボタンをクリックします。

プレビュー用のフォームが表示されるのでアンケートに回答します。

入力したアドレスへメールが送信されていれば成功です!

入力したメールアドレスにメール送信されるので、入力アドレスには十分注意しましょう。
またメールが届いて居ない場合、入力メールアドレスが誤っている可能性があります。入力アドレスをチェックしてください。エラーを確認する場合は次の箇所をチェック。GASスクリプトエディタのトリガー画面で、確認したいトリガー設定で「︙」をクリックし、「失敗した実行」を選択します。Google Apps Script(GAS)のトリガー画面で、メニュー「︙」をクリックし、「失敗した実行」を選択。
実行数の画面に遷移し、種類が「トリガー」の失敗したGAS実行が表示されます。クリックするとエラー原因を確認できます。

エラーハンドリングとデバッグ

GASの開発においてエラーハンドリングとデバックは、非常に重要。

ここからは、GASのエラーハンドリングとデバックの方法を学んでいきましょう。

エラーハンドリングとは
プログラムの処理中に処理が妨げられる事象が発生した際、その処理をエラーとして対処する処理のこと。 例外処理とも呼ばれます。
デバッグとは
スクリプトの内容に誤りがないかチェックしてあれば修正を行うこと。

エラーハンドリングはtry~catchを活用しよう

GASにおいて主なエラーハンドリング方法は、try~catchを利用する方法です。

以下のように使います。

tryにて記述した内容にエラーが発生した場合、chtch内に記載の処理を実行。

例の場合、エラー内容を取得してメッセージボックスに表示します。

try~catchをうまく活用することでエラー箇所の特定やエラー時も処理が止まらないスクリプトを作成することができます。

今回作成したスクリプトに適用させると以下のようになります。

Logger.log関数とブレークポイントを駆使してデバックしよう

デバッグには、Loger.log関数とブレークポイントを利用します。

Logger.logの使い方

Loger.log関数は、引数に入れたデータを表示できます。

変数などを引数とすることで処理中に変数にどのようなデータが入っているか確認できます。

主な使い方はこんな感じ。

このLogger.logを値を確認したい箇所に埋め込みます。

実行すると以下のようにコンソールに表示されます。

ブレークポイントの使い方

ブレークポイントは、処理を一時停止できる機能です。

一時停止中は、変数にどんな値が格納されているか確認が可能。

ソースの行数をクリックするとブレークポイントが設定できます。

複数設置することも可能。

その場合、処理中にブレークポイントが設置されている箇所を通過するたびに一時停止します。

ブレークポイントを設定したらデバックボタンを押します。

ブレークポイントを通過すると処理が一時停止されます。

変数の値は変数画面で確認できます。

Looger.logとブレークポイントをうまく活用してエラーを対処していきましょう。

まとめ

この記事では、Googleフォームからの自動返信メールを設定する方法について説明しました。

内容をまとめると以下。

  • Googleフォームは、アンケートを簡単につくれるGoogleが提供しているアンケートツール
  • GASとGoogleフォームを組み合わせると回答されたメールアドレスに自動送信が可能
  • GASの編集は、AppsScriptを利用することで作成可能
  • スプレッドシートから値を取得する関数とメールを送信する関数をご紹介
  • デバッグ方法としてログ表示とブレークポイントについてご説明

GASを利用することでGoogleフォームをより便利に利用できます。

ぜひ本記事を参考にGASを活用してみてください!

\ゲームで学ぶプログラミング/
独学でプログラミングを学んで開発者に!
Unity入門の森オリジナル本格ゲーム制作講座はこちら
本格ゲームの全ソースコード公開・画像&動画による解説付き
タイトルとURLをコピーしました