スクリプトプロパティとはなんだ?
スクリプトプロパティは、スクリプトで利用する値を入れておく箱のようなものです。
用途としてはすべてのユーザーがスクリプト全体で利用する固定値を入れておいて使いまわします。
ひらたく言うと共有の固定値です。
たとえば、
- あるスプレッドシートのIDをスクリプトで何回も利用する場合
- スクリプトで利用するAPIのエンドポイントのURL
- 共有で利用するログイン画面のログインID
こういったものを私はスクリプトプロパティに放り込んでおきます。
設定方法と利用方法を具体的に書きます。
スクリプトプロパティの設定方法
歯車アイコンをクリック

プロジェクトの設定画面下のスクリプトプロパティからスクリプト プロパティを追加をクリック

プロパティに属性名、値にスプレッドシートIDを入れます

で、「スクリプト プロパティを保存」をクリックして完了
完了するとこんなふうになります。

スクリプトプロパティの利用方法
スクリプトプロパティはコードの中で利用します。
こんなふうにします。
const usePropertyService = () => {
const propetiesService = PropertiesService
const scriptProperties = propetiesService.getScriptProperties()
const property = scriptProperties.getProperty('SPREADSHEET_ID')
console.log(property)
}
これでさきほど設定したスプレッドシートIDの値を取り出せます。
取り出した値は↓のように利用します。
const usePropertyService = () => {
const propetiesService = PropertiesService
const scriptProperties = propetiesService.getScriptProperties()
const property = scriptProperties.getProperty('SPREADSHEET_ID')
const spreadsheetApp = SpreadsheetApp
const spreadsheet = spreadsheetApp.openById(property)
console.log(spreadsheet)
}
property変数にはスプレッドシートのIDが入っており、このIDを使ってスプレッドシートオブジェクトを取得しています。
スクリプトプロパティ利用上の注意点
エディタ上に固定値を何度も書く必要がないので間違いを防げるのが良い点です。
秘密は保持されない
が、他人に知られたくない秘密をスクリプトプロパティに設定するのはあまり良いとは言えません。
普通に他の人もプロジェクトの設定で見ることができますからね、その秘密。
書き換えも可能
また、書き換えられない固定値でもありません。スクリプト内で書き換え可能です。
書き換えはsetPropertyを使います。(4行目)
const usePropertyService = () => {
const propetiesService = PropertiesService
const scriptProperties = propetiesService.getScriptProperties()
scriptProperties.setProperty('SPREADSHEET_ID', '書き換えるIDを入れる')
const property = scriptProperties.getProperty('SPREADSHEET_ID')
console.log(propety)
}
このようにすると最初に設定したスクリプトプロパティが書き換えられます。
書き換え前

書き換え後

秘密も保持されませんし書き換え可能ですので、とどのつまりガバガバです。
ですので、共有の固定値を入れておいて使い回すために利用するとよいかと思います。
