1つのGASを複数のスプレッドシートで利用する方法(Google Apps Script)
2021/05/27
この記事の情報は古いです。こちらに書き直しました。新しいスクリプトエディタに対応しています。
1つのGoogle Apps Scriptファイルを複数のスプレッドシートから利用する方法です。これはプログラムを集中管理するために便利です。
ちなみにExcelマクロにはこの機能がありません。GASならではの機能です。
Google Apps Script側の対応
まずはGoogle Apps Script側の対応です。
とりあえずこんな感じの簡単なスクリプトを作りました。A1セルにOKという文字列を入力する簡単なプログラムです。これを複数のスプレッドシートから実行できるようにします。
function myFunction() { var mySheet = SpreadsheetApp.getActiveSheet(); mySheet.getRange("A1").setValue("OK"); }
「ファイル」−「版を管理」を選択しましょう。
テキストボックスにバージョンNoを示す文字列を入れてください。今回は「ver01」としました。入力したら横の「新しいバージョンを保存」ボタンを押しましょう。
以下のようにバージョンが登録されます。「OK」ボタンを押して閉じます。
次に「ファイル」−「プロジェクトのプロパティ」を選択します。
以下が現れるので、この中から「スクリプトID」の値をメモしておきます。このIDをスプレッドシート側で設定することでGASスクリプトを使えるようになるわけです。
スプレッドシート側の対応
スプレッドシート側もスクリプトエディタでコードを書く必要があります。必要最小限の短いコードですが。
「ツール」ー「スクリプトエディタ」を選択しましょう。
スクリプトエディタが立ち上がったら、「リソース」−「ライブラリ…」を選択します。
「ライブラリを追加」横のテキストボックスに先程メモしておいたスクリプトIDを入力し、「追加」ボタンを押します。
すると、先程スクリプトを書いたGASファイル名が現れます。バージョンを先程設定したバージョンを選択肢、「保存」ボタンを押します。
これでGASファイルとの接続設定は完了です。スクリプトを呼び出すために以下のコードを記述しましょう。GASファイル名.関数名という構文になります。
function myFunction() { CommonScript.myFunction(); }
実行してみる
それでは実行してみましょう。
マクロボタンの設置の仕方や「このアプリは確認されていません」というエラー(最初に実行する時に必ず出るエラー)の対処法については以下をご覧ください。
実行すると以下の通りうまくA1セルに文字列が入力されました。
同じ要領で複数のスプレッドシートから1つのGASファイルのスクリプトを実行させることができます。
Excelではこの方法が使えないのでExcelファイルをコピーを重ねると収集がつかなくなり管理がすごく大変になります。スクリプトファイルの集中管理ができる点はGASが一枚上手ですね。
スポンサーリンク