非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

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プロジェクトを呼び出すことにも利用できます。ぜひ試してみて下さい。

 

スポンサーリンク

 - Google Apps Script