だいきです!
GASを開発していてグローバル変数を使うことが多々ありますが、結構定数としておいておくものってかなりあると思います。
使用しているスプレッドシートのIDとか、ファイル移動とかを行うんであればフォルダのIDなんかも宣言しておかないと後々使うのに困ったりなんかしたりして結構定数って増えがちだったりしますよね…
ですが最近調べていてどうやらプロパティストア?プロパティサービス?という機能がGASにはあることを知り、それがどうやら定数なんかを保存しておくことができるらしいぞ!ということがわかってきました。
そのため、これを開発に組み込んでみたい!用語についても調べつつ記事にまとめることができたらと思います。
GASとは何かについては以下の記事で紹介しています。ぜひ参照してください。
プロパティストア・プロパティサービスとは?使ってみた!
プロパティストアとは、IDなどの公開したくない情報を格納しておく場所のことで、情報に名前をつけて格納しておくことができます。権限がないと中身を見ることはできないため、アクセス制限を設けることができます。
プロパティサービスとは、プロパティストアに格納した情報をGASスクリプトから取り出したり編集したりすることができる仕組み的なものになります。PropatiesServiceやPropertiesなどをコードに書くことで値を取得したり、置き換えたりすることができるようになります。
理解の仕方としては、プロパティストアはデータベースで、プロパティサービスはAPIみたいなもんなんだと私は覚えています。
GASで一つのシステムを作成するとき、必ずと言っていいほどスクリプトIDなどいくつかの情報をグローバルで宣言することになるでしょう。
その際にいくつもつらつらとグローバルで宣言してしまうのは見た目としてもあまりいいように感じないかと思います。
その際にプロパティストアを使用することでソースコードの見た目をきれいにできるかつ、もしシートが変更になったとしてもスクリプトに変更を加えることなく変更が可能になります。
このスクリプトに変更を加えることなくパラメータを修正できる点がユーザーに提供するうえでかなり大きく作用してくると思います。
必要に応じて使い分けるのが一番いいかもしれませんね。
プロパティストアの開き方
まずはプロパティストアを開く方法から見ていきましょう。
現在、GASは新UIが登場してかっこいい感じになりましたが、このプロパティストアは旧UIしか使用ができません。正確には新UIだとスクリプトからアクセスすることでしか使用ができないです。
そのため、このプロパティストアを使用する場合は旧UIで使用するようにしてください。
以下、手順になります。
まずはスクリプトを開いてください。
新UIの方は旧UIに切り替えてください。
上の写真の以前のエディタを使用のところをクリックすることで旧UIに変更することができます。
旧UIに変わったら以下の画面になると思うので、そのまま操作を続けてください。
ファイルを選択してください。
メニューが開きますのでプロジェクトのプロパティを選択してください。
ウィンドウが開きますのでスクリプトのプロパティを選択してください。
出てきたら行の追加をクリックすることで変数を作成することができます。
ここに宣言した変数はスクリプトの中で受け取れるようになります。
スクリプト内での参照方法
まずはプロパティサービスを使用できるようにしなくてはいけません。
そのため、以下のスクリプトを記述してプロパティサービスを使用できるようにしましょう。
const properties = PropertiesService.getScriptProperties();
これを記述することで、プロパティサービスを使用できるようになります。
今回はスプレッドシートのIDを以下の形で設定しました。このIDを受け取ってみましょう
以下のスクリプトを先ほどの行の下に追加します。
const daikiNoKoyaFileId = properties.getProperty("DAIKI_NO_KOYA");
このようにすることで値の部分を受け取ることができました。
Logger.log(daikiNoKoyaFileId)
結果は以下のようになりました。
1xHen0pgxarRbk1vb_LcgdZsIBXAgl_54AO_zy3_OoBk
これでIDなどの情報にアクセス権限をつけて守ることができるようになりますね!
まとめ
今回はプロパティストア・プロパティサービスについての説明と使い方について説明しました。
セキュリティの強化にもなりますし、保守管理の手助けにもなります。
実際私の職場でもこの方法で保守管理を行ったりもしています。
ぜひ使用していただければと思います。
Googleのプロパティサービスの使い方について載っている記事のリンクを以下に貼っておきます。必要であれば参考にしてください。
こちらのブログではプログラミングについてどんどん情報を出していきますのでよかったら他の記事も見てみてください。
コメント