GASのスクリプトプロパティをコードで設定する方法(setPropertyメソッド)

Google Apps Script(GAS)ではAPIキーなどを格納するためにスクリプトプロパティを利用します。

しかし、2020年12月にスクリプトエディタがアップデートされ、GUI操作でスクリプトプロパティが設定ができなくなりました。

今回、スクリプトプロパティをGASのコードで設定する方法を解説します。

スクリプトプロパティはAPIやIDの格納に利用

Google Apps Script(GAS)では、スクリプトプロパティという機能があります。

スクリプトプロパティは、keyとvalueの一対でデータを保管することができます。

その後、スクリプトプロパティでkeyを指定することで保存しておいた値を呼び出すことが可能です。

GASのコードに直接記述するとセキュリティーの観点で好ましくないAPIキーやID、パスワードといったデータを格納するために、スクリプトプロパティは利用されます。

APIキーなどをスクリプトに直書きすると、GitHubなどでバージョン管理する際にも、オープンになってしまいます。

GASのソースコードの流用性を高めるために、実行環境に依存するパラメータはコード外に保持するのが推奨されます。

GASの新スクリプトエディタはGUI設定が不可に

元々、Google Apps Script(GAS)のスクリプトプロパティは、スクリプトエディタのメニューからGUI操作で設定することが一般的でした。

しかし、2020年12月にスクリプトエディタでアップデートされ、エディタが一新されました。

Google Apps Scriptのスクリプトエディタがバージョンアップ!旧版との違いを解説

アップデートによって、GASスクリプトエディタ上で、スクリプトプロパティを設定することができなくなってしまいました。

スクリプトエディタの操作でスクリプトプロパティを設定できるようにするには、従来のエディタに戻す必要があります。

Google Apps Scriptのコードでスクリプトプロパティ設定可能

では、新しくなったGoogle Apps Script(GAS)のスクリプトエディタでは、どうやってスクリプトプロパティを設定すればよいのでしょうか?

実はスクリプトプロパティは、GASのコード上でも設定することが可能です。

GASのメソッドとして、スクリプトプロパティを設定するsetPropertyがあります。

Propertiesオブジェクト.setProperty(key, value)

スクリプトプロパティはオブジェクトのように、キーとバリューを設定するため、その2つを引数に指定します。

setPropertyによるスクリプトプロパティ設定サンプルコード

Google Apps Script(GAS)でsetPropertyメソッドを使って、スクリプトプロパティを設定するサンプルコードを紹介します。

setPropertyメソッドを使ってコードでスクリプトプロパティを設定するGASのサンプルコード

function setVal(){
//スクリプトプロパティで「TEST」キーに値を格納する
PropertiesService.getScriptProperties().setProperty("TEST", "スクリプトプロパティテスト");
//スクリプトプロパティを取得する
Logger.log(PropertiesService.getScriptProperties().getProperty("TEST"));
}

setPropertyメソッドでスクリプトプロパティを設定後に、getPropertyメソッドでスクリプトプロパティを取得してログ表示するサンプルスクリプトです。

サンプルスクリプトを実行すると、setPropertyで設定したスクリプトプロパティの値が、ログ出力で表示されていることが確認できます。

スクリプトプロパティを設定するsetPropertyメソッドで実行したログ結果

このようにして、GASのコードでsetPropertyメソッドを実行することでスクリプトプロパティに値を保存することができます。

スクリプトプロパティを複数設定する場合はsetProperties

なお、前述で紹介したsetPropertyメソッドはスクリプトプロパティを1個設定できます。

ただ、たくさんのスクリプトプロパティを設定したい場合は、setPropertyを何回も書く必要があり手間です。

複数のスクリプトプロパティを一度に設定したい場合は、setPropertiesメソッドを使用します。

setPropertiesメソッドは、key,valueが複数保持するオブジェクト変数を引数にすることで、一括でスクリプトプロパティを設定できます。

従来版のスクリプトエディタのGUIで設定する方法

なお、新しいGASスクリプトエディタではできませんが、旧版のエディタはGUI操作でスクリプトプロパティを設定可能です。

今回、新スクリプトエディタから従来版のエディタに戻したあと、スクリプトプロパティを保存する方法も紹介します。

1.まず、新スクリプトエディタの「以前のエディタを使用」をクリックします。

Google Apps Script(GAS)の新しいバージョンのスクリプトエディタは、従来版のエディタに戻すことも可能

2.従来版のスクリプトエディタに戻ったら、メニューからプロジェクトのプロパティを選択します。

Google Apps Script(GAS)の従来版スクリプトエディタでスクリプトプロパティを設定する方法

3.上部の3つのタブから「スクリプトのプロパティ」を選択し、行を追加をクリックし、プロパティと値をそれぞれ入力し、保存ボタンをクリックします。

Google Apps Script(GAS)の従来版スクリプトエディタでスクリプトプロパティを行の追加して、保存ボタンをクリックする

以上の3StepでスクリプトプロパティがGUI操作で設定できます。

ただ、新しいスクリプトエディタからわざわざスクリプトプロパティを設定するために従来版のエディタに戻すのは手間です。

今の新しいGASスクリプトエディタを使いこなす意味でも、setPropertyメソッドの活用がオススメです。

まとめ・終わりに

ます今回、Google Apps Script(GAS)のスクリプトプロパティの設定(値保存)をスクリプトエディタのGUI操作ではなく、コードで実行する方法を紹介しました。

2020年12月にスクリプトエディタが新しくなって、スクリプトエディタのメニューからスクリプトプロパティの値を格納できなくなりました。

新しいスクリプトプロパティでは、setPropertyメソッドを使用して、GASコードでスクリプトプロパティのkeyとvalueを設定します。

最初はコードでスクリプトプロパティを設定するのは面倒です。

しかし、設定用のsetPropertyのスクリプトを一度用意しておけば、使い回しができます。

いちいち従来のスクリプトエディタに戻して作業するのは手間なので、コードでスクリプトプロパティを設定する方法を習得しましょう。