【GAS】Google Apps Script で業務効率化【コードの説明1】

Google Apps Script コード説明備忘

【GAS】コード一部抜粋

function getFormValue(e) 
{ 
  //[メールアドレスを収集する]オプションを使用時の回答者のアドレス取得
  let recipient = e.response.getRespondentEmail();
  //回答者のアドレス確認
  Logger.log(recipient);
}

function anyName(e){} について

Forms送信後にForms自体から質問と回答(値)を取得したい場合は、「function anyName(){}」の「()」のなかに「e」を入れて「function anyName(e){}」とする。
またメールアドレス、Formsの質問・回答収集用のコードにも同じく「e」を使用する。

【補足】
・・・トリガーが起動すると、Apps Script は引数としてイベント オブジェクト(通常は e という)を渡します。イベント オブジェクトには、トリガーを発動させたコンテキストに関する情報が含まれます。・・・・
[GASリリースノート>リファレンス>スクリプトプロジェクトリソース>自動化のトリガーとイベント>イベントオブジェクト]導入部分より抜粋

変数の宣言(var、let、const)

プログラミング言語には、文字列や数値などのデータに名前をつけることで、繰り返し利用できるようにする変数という機能があります。
JavaScriptには「これは変数です」という宣言をするキーワードとして、var、let、constの3つがあります。
[JavaScript Primer 変数と宣言より抜粋]
*GAS = JavaScriptベースのプログラム言語

var について

varキーワードでは、値の再代入が可能な変数を宣言できます。 varの使い方はletとほとんど同じです。

varletとよく似ていますが、varキーワードには同じ名前の変数を再定義できてしまう問題があります。

letconstでは、同じ名前の変数を再定義しようとすると、次のような構文エラー(SyntaxError)が発生します。 そのため、間違えて変数を二重に定義してしまうというミスを防ぐことができます。

// "x"という変数名で変数を定義する
let x;
// 同じ変数名の変数"x"を定義するとSyntaxErrorとなる
let x; // => SyntaxError: redeclaration of let x

一方、varは同じ名前の変数を再定義できます。 これは意図せずに同じ変数名で定義してもエラーとならずに、値を上書きしてしまいます。

// "x"という変数を定義する
var x = 1;
// 同じ変数名の変数"x"を定義できる
var x = 2;
// 変数xは2となる

またvarには変数の巻き上げと呼ばれる意図しない挙動があり、letconstではこの問題が解消されています。 ・・・ そのため、現時点では「letvarを改善したバージョン」ということだけ覚えておくとよいです。

[JavaScript Primer 変数と宣言より抜粋]

let について

letキーワードでは、値の再代入が可能な変数を宣言できます。
letconstとは異なり、初期値を指定しない変数も定義できます。

次のコードでは、x という変数を宣言しています。 このとき x には初期値が指定されていないため、デフォルト値としてundefinedで初期化されます。

let x;
// `x`は自動的に`undefined`という値になる

このletで宣言された x という変数には、代入演算子 = を使うことで値を代入できます。
letで宣言した変数に対しては何度でも値の代入が可能です。

let x;
x = 1;
x = 2;
x = 3;

[参考:JavaScript Primer 変数と宣言]

const について

constキーワードでは、再代入できない変数の宣言とその変数が参照する値(初期値)を定義できます。

次のように、constキーワードに続いて変数名を書き、代入演算子 = の右辺に変数の初期値を書いて変数を定義できます。

const 変数名 = 初期値;

[JavaScript Primer 変数と宣言より抜粋]

e.response.getRespondentEmail(); について

e.response について

「e.response」はFormsの回答を元にして、Class FormResponseのMethodsを利用できるようにする。

FormResponseはフォーム全体に対する回答を取得します。FormResponseを使用するには、回答者が送信した回答にアクセスする(getItemResponses()を参照)・・・方法があります。FormResponseは Formから作成またはアクセスできます。

[参考:GASリリースノート>リファレンス>フォーム>フォームレスポンス]

getRespondentEmail() について

「Forms > 設定 > 回答 > メールアドレスを収集する」の設定が有効な場合、回答を送信したユーザーのメールアドレスを取得できるようにする。

[参考:GASリリースノート>リファレンス>フォーム>フォームレスポンス>getRespondentEmail()]

コメント

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