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
とほとんど同じです。
var
はlet
とよく似ていますが、var
キーワードには同じ名前の変数を再定義できてしまう問題があります。
let
やconst
では、同じ名前の変数を再定義しようとすると、次のような構文エラー(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
には変数の巻き上げと呼ばれる意図しない挙動があり、let
やconst
ではこの問題が解消されています。 ・・・ そのため、現時点では「let
はvar
を改善したバージョン」ということだけ覚えておくとよいです。
[JavaScript Primer 変数と宣言より抜粋]
let について
let
キーワードでは、値の再代入が可能な変数を宣言できます。let
はconst
とは異なり、初期値を指定しない変数も定義できます。
次のコードでは、x という変数を宣言しています。 このとき x には初期値が指定されていないため、デフォルト値としてundefinedで初期化されます。
let x;
// `x`は自動的に`undefined`という値になる
このlet
で宣言された x という変数には、代入演算子 = を使うことで値を代入できます。let
で宣言した変数に対しては何度でも値の代入が可能です。
let x;
x = 1;
x = 2;
x = 3;
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 > 設定 > 回答 > メールアドレスを収集する」の設定が有効な場合、回答を送信したユーザーのメールアドレスを取得できるようにする。
コメント