はじめに
Googleが提供するネット完結の問い合わせや、授業のテスト・採点、アンケートなどを簡単に作成することができるプラットフォームです。スプレッドシート(ネット上のEXCELのようなもの)にデータを送信してくれたりなど、何もしなくてもとても便利なツールなのですが、唯一需要がありそうなのにできないことがあります。それが『Google Forms に送信されたデータを元に、自由なメールを自動返信できない』という点です。
今回はそんな問題をGASというプログラミング言語を用いて解決していく方法を紹介します!!
Google Forms の使い方から、自動返信のプログラム作成まで紹介しますので、初心者の方も安心してください!!
準備
今回は次の準備をしてください。
- 使うブラウザはGoogle Chrome
- Google アカウントを作成
- ネットサーフィンができるPC
Google フォームの作成
初めに、Google Forms にて、フォームを作成していきます。
Google Driveにアクセスする
Googleにアクセスしてアカウントに自身のGoogleアカウントでログインをします。
画面の右上に表示される・が9こ正方形に並んだアイコンをクリックすると、YoutubeやMaps、翻訳などが表示されるので、その中から『ドライブ』を探してクリックします。
この中にフォームを作成していくのですが、今後のために、PCのデスクトップのようにフォルダを作って整理整頓する方法をお勧めします。(今回はこちら!)
画面左上の『新規』を作成して『フォルダ』をクリックする。
「フォルダ名」を入力(私は”forms_sample”と入力しました)して『作成』をクリックする。
作成されたフォルダをダブルクリックしてGoogleDriveの位置(ディレクトリ)を移動します。
画面上部の表示が『マイドライブ>(先ほど作成したフォルダ名)』になっていることを確認してください。
Google フォームを作成する
再度、画面左上の『新規』をクリックして『Google フォーム』をクリックしてください。
新しいタブで『無題のフォーム』というものが開くと思います。これが、Googleフォームになります。(初めて開く場合、「新しいGoogleフォームのご紹介」と表示されるかもしれませんが、今回はスキップでいいです。)
画面左上の『無題のフォーム』と書いてあるところをクリックすると名前を変更できるので、任意の名前に変更してください(僕は”sample”にしました)。
フォーム内を操作して適当な質問を作成してください。今回、私は次のような質問を作成しました。
- メールアドレス(必須)
- 質問1(記述短文)
- 質問2(記述長文)
- 質問3(ラジオボタン)
- 質問4(チェックボックス)
画面右上の『目』のマークをクリックすると、実際にフォームに入力した時の見た目などを確認することができます。
これで、Googleフォームの作成は終了です。
Google フォームとスプレッドシートの連携
続いて、作成したGoogleフォームとスプレッドシートを連携して、データの集計をしやすくします。
作成したGoogleフォームの上部中央に『質問』と『回答』があるので、『回答』をクリックします。
『スプレッドシート』のアイコンを探し、クリックします。
表示される中から、最初に選択されている『新しいスプレッドシートを作成』を選択し、『作成』をクリックします。
新しいタブでスプレッドシートが開かれます。
以上で、Googleフォームとスプレッドシートの連携が完了しました。Googleフォームの質問の内容が送信されると、このスプレッドシートに回答の結果が反映される仕組みになります。
自動返信メールの作成
これまでの操作で、プログラミングをするための準備を行ってきました。これからは、プログラムをコピペして自動返信メールを作っていきましょう!!
スクリプトエディタの起動
上部のメニューの中から『ツール』を探してクリックしてください。続いて表示されるリストの中から『スクリプトエディタ』をクリックしてください。
スクリプトエディタが立ち上がります。画面左上の『無題のプロジェクト』をクリックすると、名前の変更ができます(私は”sample”と入力しました)。
ソースコードを記述
デフォルトで入力されている次のコードを削除してください。
function myFunction(){
}
続いて次のコードをコピー&ペーストしてください。
function onFormSubmit(e) {
// フォームの回答を取得
let Time_stamp = e.values[0];// タイムスタンプ
let Email_address = e.values[1];// メールアドレス
let Question_1 = e.values[2];// 質問1(記述短文)
let Question_2 = e.values[3];// 質問2(記述長文)
let Question_3 = e.values[4];// 質問3(ラジオボタン)
let Question_4 = e.values[5];// 質問4(チェックボックス)
// 自動返信メール件名
let Subject = 'こちらはメールの件名になります'
// 自動返信メール本文
let Body =
'こちらはメール本文になります'+'\n'+
'【質問1(記述短文)】:' + Question_1 + '\n'+
'【質問2(記述長文)】:' + Question_2 + '\n'+
'【質問3(ラジオボタン)】:' + Question_3 + '\n'+
'【質問4(チェックボックス)】:' + Question_4 + '\n'+
'【フォーム送信日時】:' + Time_stamp;
// メールの下書きを作成
let Draft = GmailApp.createDraft(Email_address, Subject, Body);
// 作成した下書きメールを送信する
Draft.send();
}
プログラムの編集が完了したら、画面上部の『保存』ボタンをクリックして保存します。
プログラムの内容について説明しますが、まず先に作ってみたい!!という方は次へ進んでください。
上のプログラム内で自動返信の本文を変えたい場合は下記のコードを編集します。「 ‘ 」で囲まれた部分が実際の本文に出力されます。
「 \n 」は文章の改行を意味しているので、これを消すと文章が改行されなくなります。
最後に「 ‘ 」で囲まれた部分と「 \n 」を「 + 」を用いて文字を繋げる感覚で文章を作成していきます。基本的に一言や固定の文面であれば「 \n 」や「 + 」を用いる必要はありませんが、今回のようなGoogleフォームで送信された質問内容を使って返信内容に動きをつけたい場合は、必須となるプログラミングの手法です。
let Body =
'こちらはメール本文になります'+'\n'+
'【質問1(記述短文)】:' + Question_1 + '\n'+
'【質問2(記述長文)】:' + Question_2 + '\n'+
'【質問3(ラジオボタン)】:' + Question_3 + '\n'+
'【質問4(チェックボックス)】:' + Question_4 + '\n'+
'【フォーム送信日時】:' + Time_stamp;
このGAS(Google Apps Script)はJavaScriptというプログラミング言語でできることはほとんどできます。GASで調べて出てこないことはJavaScriptに置き換えることによって解決するかもしれません。
プログラムのトリガーの設定
先ほど作成したプログラムを実行するタイミングを設定していきます。
画面左のメニューから『時計アイコン』をクリックする。(初めて開く場合は何か表示されると思いますが、無視してOKです)
画面右下の『+ トリガーを追加』をクリックして、設定を次のようにする。
- 実行する関数を選択
- onFormSubmit
- 実行するデプロイを選択
- Head
- イベントのソースを選択
- スプレッドシートから
- イベントの種類を選択
- フォーム送信時
- エラー通知設定
- 今すぐ通知を受ける
設定を入力したら、右下の『保存』をクリックします。別タブが開くのでアカウントの承認を行います。
承認の手順に関しては、こちらの記事をご覧ください。
GASを実行しようとしてこんな画面が表示されたことありませんか? 今回はこの対処法についてお伝えしたいと思います。 Googleアカウントでの認証 Googleアカウントを用いた認証を行う際にアカウントの選択を行います。 […]
設定が完了するとタブが自動で閉じます。続いて『保存』をクリックしてトリガーを保存します。
これで先ほど作成したプログラムをGoogleフォーム送信時に実行することができるようになりました。
実行テスト
Googleフォームを開き、送信テストを行います。
Googleフォームの編集サイト右上の『目のアイコン』をクリックして送信テストを行います。
作成したフォームの内容を全て記入して『送信』をクリックして終了します。
数秒後に先ほど書いたプログラム通りの内容のメールが送信されれば、自動返信メールの設定の完了です。
お疲れ様でした!
今回は、Googleフォームの送信をきっかけにオリジナルの自動返信メールを作成・送信する方法を紹介しました。
何かの申し込みなど、特別な手順を申込者に提示したい場合に非常に便利になります。
学校現場においても使う機会があるかと思いますので、今回をきっかけにGAS(Google Apps Script)を勉強していただけたらと思います。
今後もこのような情報を発信していきますので、ぜひお気に入り登録お願いします!!!
※プログラムにミスなどがあれば、コメントや問い合わせなどで教えていただけたらと思います。
おまけ
今回実装したプログラムにはちょっとしたテクニックを使ってます。
メールを送信する際に、『メールの下書きを作成』→『作成した下書きメールを送信』という手順を踏んでいることです。
本来であれば、メールを下書きを作成せずにメールを直接送信するプログラムを実行するのですが、GASには1日あたりに実行できるプログラムに制限があります。その中でもプログラムによるメール送信は一般アカウントでは100通/日でGoogle Workspaceでは500通/日となります。これ以上のプログラムによるメール送信はエラーとなり実行できません。
今回の方法を行うことでこのメールの送信回数の制限を受けなくなります。こうした工夫を行うことで所望する処理をうまく行っていくこともプログラミングが面白いところですね!!
これで本当に最後になります!
お疲れ様でした!!