GASって便利です。
開発環境もインストールすることないし、Spread Sheet、Docs、Calender、などなどGoogleのAppsを操作できるし。。とっても便利。ちょっと難しい計算はGoogle colaboratoryでPythonの方が便利ですけど、おススメです。
Google Apps Scriptの関連記事はこちらです。
で。。便利なんですが、コードをシェアしようとおもったら。。いつも。。
var origRange = SpreadsheetApp.openById('コピー元のSpread Sheet のIDです').getSheetByName('シート名').getDataRange();
こんな感じで、書いていましたが。。IDやAPI Key等を隠して渡さないといけないので、なんかカッコ悪い感じでした。
それを少しだけカッコよく書けるという。。こんな記事を見つけたので紹介です。
プロパティストア
ぶっちゃけ。。大したことないんですが。。 プロジェクトのプロパティというやつで、グローバル定数が書けるって感じです。まぁ、これ使うか?という気もしないでもないのですが。。 コード自体からは、見えないので、不慮の事故が防げますって感じでしょうか?
シートのIDとかカレンダーIDなどは、シートやカレンダー側でセキュリティが別途あるので、漏れても大したことないですが。。特に、APIのSecreat Keyとか、他の人に使われるとよくないものなんかを消し忘れたりして公開するということを防げそうです。
値のセットの仕方
Google Spread Sheetなどからツール→スクリプトエディタからGASの画面に入り
ファイル の プロジェクトのプロパティ をクリック
そうすると、こんな画面がでてきますので、
スクリプトのプロパティ タブ をクリックします。 そして、行を追加で、変数名(定数名か?)と値を以下のように入れます。
GASからの読み出し
上のSheet_IDって値を取り出すのは、こんな感じです。
PropertiesService.getScriptProperties().getProperty('Sheet_ID');
これを、定数として何か名前をつけて使うなら
const sheet_id = PropertiesService.getScriptProperties().getProperty('Sheet_ID');
みたいに使います。
なんだか。。微妙ですが。。 こういう使い方もできるということで。。
ファイル名を取り出すとか、Glide用の住所から緯度経度を出すGASとか、予約システム(Tom’s hobbyの方)のGASとか、ちょくちょく問い合わせがあって、ほぼそのまま出しているんですが。。 やはり、これからは、こういう風に書いて、各自にIDを確実に変えてもらって使ってもらうことにします。