【Google Apps Script(GAS)】Googleフォーム回答者のGメールアドレスを取得する

今回は、Google Apps Script(GAS)を使ってGoogleフォーム回答者のGメールアドレスを取得し、スプレッドシートに反映する方法についてご紹介します。

※本ページはプロモーションが含まれています

スポンサーリンク
スポンサーリンク

回答者のメールアドレスを収集する設定

スクリプトを作成する前に、Googleフォームで下記の設定を行います。

Googleフォームの編集画面を開きます。
右上の歯車マークの設定アイコンをクリックします。
[メールアドレスを収集する] の横のチェックボックスをオンにします。

引用:Googleヘルプページ「フォームの回答を表示、管理する

Googleフォームの回答者のGメールアドレスを取得し、スプレッドシートに反映する

Googleフォームの回答者のGメールアドレスを取得し、スプレッドシートに反映するには下記のサンプル1のようなスクリプトを使用します。

・サンプル1

function myFunction() {

var ss_id = ‘[ここにスプレッドシートのIDを記載]’; //スプレッドシートのIDを指定
var sh_name = ‘アンケート集計’; //スプレッドシートのシート名を指定
var sh = SpreadsheetApp.openById(ss_id).getSheetByName(sh_name);

//フォーム情報取得の取得
var form = FormApp.openById(‘[ここにGoogleフォームのIDを記載]’); //GoogleフォームのIDを指定

var formResponses = form.getResponses(); //Googleフォームの複数の回答を配列で取得

//Googleフォームの回答の数だけ処理を繰り返す
for (var i = 0; i < formResponses.length; i++) {

var formResponse = formResponses[i];
var address=formResponse.getRespondentEmail();

}

sh.getRange(1, 1).setValue(address);

}

また、今回の関数の実行には「スプレッドシートから」「フォーム送信時」のトリガー設定が必要となりますので、トリガーの詳細につきましてはこちらの記事をご覧ください。

【Google Apps Script(GAS)】トリガーを設定してスクリプトを実行する
Google Apps Scriptのスクリプトエディタでは、 ・タイマー指定 ・スプレッドシートの起動時や編集時、フォーム送信時 ・カレンダーの予定更新時 などの条件でトリガーを設定すると、設定した内容に基...

 

それでは上記のサンプル1についてですが、まず、

var ss_id = ‘[ここにスプレッドシートのIDを記載]’;
var sh_name = ‘アンケート集計’;
var sh = SpreadsheetApp.openById(ss_id).getSheetByName(sh_name);

で、IDで指定したスプレッドシートの「アンケート集計」というシートを変数shに代入します。

 

次に、

var form = FormApp.openById(‘[ここにGoogleフォームのIDを記載]’);

ではIDでGoogleフォームを指定し、

var formResponses = form.getResponses();

で、Googleフォームの複数の回答を配列で取得し、変数formResponsesに代入します。

 

for (var i = 0; i < formResponses.length; i++) {

}

は、Googleフォームの回答の数だけ処理を繰り返すためのfor文です。

 

var formResponse = formResponses[i];
var address=formResponse.getRespondentEmail();

で回答者のGメールアドレスを取得して変数addressに代入し、

sh.getRange(1, 1).setValue(address);

で指定したスプレッドシートの「アンケート集計」というシートのセルA1に反映させます。

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