こんにちは!
Yuki (@yukibnb) です。
今回はGoogle Apps Script (GAS) を使ってGoogleフォーム回答者のメールアドレスを取得する方法を紹介します。
回答者にお礼メールを自動送信したい場合に活用できます。
では見ていきましょう!
本記事で紹介する方法と合わせて以下関連記事もご覧頂くと、GASでのGoogleフォームの操作がより一層スムーズになります。
【保存版!】Googleフォームの質問と回答をGASで自在に取り出す方法まとめ
【簡単!】Googleフォーム送信時にGASを自動実行する方法
はじめに: Googleフォーム管理画面の設定
本記事で紹介するメールアドレスの取得方法は、Googleフォームを以下のように事前設定していることが前提です。
Googleフォーム管理画面右上の歯車アイコンをクリックする
Googleフォーム管理画面の右上にある歯車アイコンをクリックします。
するとポップアップが表示されます。
[メールアドレスを収集する]にチェックする
[メールアドレスを収集する]にチェックし、[保存]をクリックします。
管理画面の最上部にメールアドレスの質問が追加される
管理画面の最上部にメールアドレスの質問が追加されました。
一つ目の質問よりも上に表示されているのがポイントです。
回答者画面の最上部にもメールアドレスの質問が追加される
回答者画面にもメールアドレスの質問が追加されていることが分かります。
ここでも一つ目の質問よりも上に表示されています。
このように[メールアドレスを収集する]オプションを使用すると、必ず最上部にメールアドレスの質問が表示され、順番を変更することはできません。
これでGoogleフォームの事前準備は完了しました。
では回答者のメールアドレスを取得するGoogle Apps Script (GAS) を見てみましょう。
コピペでOK!Googleフォーム回答者のメールアドレスを取得する方法
≪getRespondentEmail≫ 回答者のメールアドレスを取得する
function submitForm(e){ let email = e.response.getRespondentEmail(); /* 回答者にメール送信などの処理をする */ }
回答者のメールアドレスはgetRespondentEmail
メソッドで取得できます。
回答者がGoogleフォームから提出した内容はe
として、関数submitForm
に渡されます。
このe
にはGoogleフォームの回答者が提出した様々な内容が詰まっています。回答済みアンケート用紙が入った封筒のようなものです。
回答者のメールアドレスはこの封筒に記載されている差出人のイメージです。
e.response.getRespondentEmail()
と記述することで、封筒 (e
) に記載されている差出人 (メールアドレス) を取得します。
そして取得したメールアドレスを変数email
に格納しました。
回答者にお礼メールなどの各種メールを自動送信したい場合、この変数email
を宛先に使用すれば送信できます。
[メールアドレスを収集する]オプションを使用しなかった場合
getRespondentEmailメソッドでは取得できません
[メールアドレスを収集する]オプションを使用せず、自身でメールアドレスに関する質問を作成した場合、getRespondentEmail
メソッドではメールアドレスを取得できません。
getRespondentEmail
メソッドは厳密には「回答者のメールアドレスを取得する」メソッドではなく、「[メールアドレスを収集する]オプションを利用した回答者のメールアドレスを取得する」メソッドだからです。
[メールアドレスを収集する]オプションを使用しなかった場合、別のメソッドを使用してメールアドレスを取得します。
≪getItemResponses≫と≪getResponse≫を使用する
function submitForm(e){ let itemResponses = e.response.getItemResponses(); let email = itemResponses[2].getResponse(); /* 回答者にメール送信などの処理をする */ }
Googleフォームの回答はgetItemResponses
メソッドとgetResponse
メソッドを使用して取得することができます。
まずgetItemResponses
ですべての質問と回答を取得し、変数itemResponses
に格納します。
今回の例ではメールアドレスの質問は3つ目にあるため、変数itemResponses
のインデックス番号2に対してgetResponse
メソッドを使用することで3つ目の質問の回答、つまりメールアドレスを取得することができます。
変数itemResponses
のインデックス番号は0から始まるため、3つ目の質問のインデックス番号は2です。
メールアドレスが何番目の質問かに応じて変数itemResponses
のインデックス番号を変更するだけで簡単にメールアドレスを取得できます。
getItemResponses
メソッドを活用すると、メールアドレスだけでなくGoogleフォームの様々な質問や回答を取得することができます。詳しい活用方法は画像付きで詳しく解説した以下記事をご覧ください。
【保存版!】Googleフォームの質問と回答をGASで自在に取り出す方法まとめ
まとめ
今回はGoogle Apps Script (GAS) を使ってGoogleフォーム回答者のメールアドレスを取得する方法を紹介しました。
[メールアドレスを収集する]オプションを使用しているかどうかで使用するGASのメソッドが異なるため、ご自身のGoogleフォームの設定にあった方法でメールアドレスを取得してください。
次回もご期待ください!