1つのGASを複数のスプレッドシートで利用する方法(新エディタ版)
前回、Googleスプレッドシートを外部GASから制御する方法について書きました。これはGAS側から制御する方法だったわけですが、今度はスプレッドシート側からGASを制御する方法について書きます。この方法は1つのGoogle Apps Scriptファイルを複数のスプレッドシートから利用することも可能になります。
Google Apps Script側の対応
まずはGoogle Apps Script側の対応です。
とりあえずこんな感じの簡単なスクリプトを作りました。A1セルにOKという文字列を入力する簡単なプログラムです。これを複数のスプレッドシートから実行できるようにします。
function myFunction() { var mySheet = SpreadsheetApp.getActiveSheet(); mySheet.getRange("A1").setValue("OK"); }
まず左サイドの歯車アイコンをクリックしましょう。
すると、以下の画面になるので「スクリプトID」という項目の横にある英数字の羅列(これがスクリプトID)をコピーしておきましょう。
GAS側の対応はこれでおしまい。ファイルも閉じてOKです。(プロジェクト名は覚えておいて下さい。ここではCom2としておきます。)
スプレッドシート側の対応
スプレッドシート側もスクリプトエディタでコードを書く必要があります。必要最小限の短いコードですが。
スプレッドシート側でスクリプトエディタ−を起動します。
エディタが現れたら左サイドメニューから「ライブラリ」の「+」ボタンをクリックします。
左図のようにスクリプトIDの入力BOXが現れるのので先程コピーしておいたIDを貼り付けて「検索」ボタンをクリックしましょう。すると右図のように「ライブラリCom2を検索しました」と現れます。先程作ったGASのプロジェクト名です。赤矢印の「追加」ボタンをクリックします。
左サイドメニューにCom2(任意のGASプロジェクト名)が現れることを確認しましょう。
ソースコードは以下の通り。プロジェクト名(今回はCom2).関数名(); で実行することができます。
function myFunction() { Com2.myFunction(); }
ボタンを設置し実行してみるとご覧の通り外部で作ったGASが実行できたことがわかります。
この方法は1つのGoogle Apps Scriptファイルを複数のスプレッドシートから利用することできますし、逆に1つのスプレッドシートから複数のGASプロジェクトを呼び出すことにも利用できます。ぜひ試してみて下さい。
スポンサーリンク