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

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

1つのGASを複数のスプレッドシートで利用する方法(Google Apps Script)

   

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が一枚上手ですね。

広告

 - Google Apps Script, Google Dirve