プロパティしたい(PropertiesService)
1const props = PropertiesService.getScriptProperties();
2
3props.setProperty("DOC_ID", "1Abc...xyz"); // 値を保存する
4const docId = props.getProperty("DOC_ID"); // 値を読み出す
PropertiesServiceは、キーと値のペアをGASのプロジェクトに保存する機能です。
ソースコードをGitで管理していて、非公開のドキュメントIDなどをベタ書きしたくないときに便利です。
注意
プロパティの値は暗号化されずに保存されます。 APIキーやアクセストークンなど、漏れてはいけない情報の保存には使わないでください。
スコープを選びたい
PropertiesServiceには、共有範囲の違う3つのストアがあります。
メソッド |
共有範囲 |
用途 |
|---|---|---|
|
プロジェクト全体(全ユーザー共通) |
設定値、外部リソースのID |
|
実行したユーザーごと |
ユーザー個人の設定 |
|
バインド先のドキュメントごと |
そのシート固有の状態 |
1const scriptProps = PropertiesService.getScriptProperties();
2const userProps = PropertiesService.getUserProperties();
3const docProps = PropertiesService.getDocumentProperties();
getDocumentPropertiesは、スプレッドシートなどにバインドされたスクリプトでのみ使えます。
スタンドアロンのスクリプトで呼ぶとnullが返るので注意してください。
値を設定したい(setProperty)
1const props = PropertiesService.getScriptProperties();
2
3// 1件ずつ設定する
4props.setProperty("DOC_ID", "1Abc...xyz");
5
6// 複数まとめて設定する
7props.setProperties({
8 DOC_ID: "1Abc...xyz",
9 SHEET_NAME: "集計",
10});
setPropertiesにtrueを第2引数で渡すと、既存のキーをすべて削除してから設定します。
値を読み出したい(getProperty)
1const props = PropertiesService.getScriptProperties();
2
3const docId = props.getProperty("DOC_ID"); // 値。なければ null
4const keys = props.getKeys(); // キーの配列
5const all = props.getProperties(); // { DOC_ID: "1Abc...", SHEET_NAME: "集計" }
値を削除したい(deleteProperty)
1const props = PropertiesService.getScriptProperties();
2
3props.deleteProperty("DOC_ID"); // 1件削除する
4props.deleteAllProperties(); // すべて削除する
文字列以外を保存したい(JSON.stringify)
プロパティの値は、かならず文字列で保存されます。
数値やオブジェクトを保存するときはJSON.stringifyで変換し、読み出すときにJSON.parseで戻します。
1const props = PropertiesService.getScriptProperties();
2
3// 保存する
4props.setProperty("config", JSON.stringify({ retry: 3, verbose: true }));
5
6// 読み出す
7const config = JSON.parse(props.getProperty("config"));
8config.retry; // 3
setProperty("count", 5)のように数値をそのまま渡すと"5"として保存され、
オブジェクトを渡すと"[object Object]"になってしまいます。
エディターから設定したい
コードを書かずに、GASエディターからスクリプトプロパティを登録することもできます。
[プロジェクトの設定](歯車アイコン)を開く[スクリプト プロパティ]>[スクリプト プロパティを追加]プロパティとキーと値を入力して保存
Gitにコミットしたくない値は、この画面から登録するとソースコードに残りません。