プロパティしたい(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つのストアがあります。

メソッド

共有範囲

用途

getScriptProperties

プロジェクト全体(全ユーザー共通)

設定値、外部リソースのID

getUserProperties

実行したユーザーごと

ユーザー個人の設定

getDocumentProperties

バインド先のドキュメントごと

そのシート固有の状態

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エディターからスクリプトプロパティを登録することもできます。

  1. [プロジェクトの設定](歯車アイコン)を開く

  2. [スクリプト プロパティ] > [スクリプト プロパティを追加]

  3. プロパティとキーと値を入力して保存

Gitにコミットしたくない値は、この画面から登録するとソースコードに残りません。

リファレンス