業務効率化!GASライブラリでスプレッドシートの共通コードを一元管理する方法

AI・ワークハック

社内で複数のスプレッドシートを運用していると、必ず直面するのが「スクリプトの修正作業」です。10個、20個と配布したシートに対して、1つずつコードを書き換えて回る作業は、エンジニアにとっても管理者にとっても大きな負担となります。そんな時に活用したいのが、Google Apps Script(GAS)のライブラリ機能です。

ライブラリ機能を活用すれば、共通のプログラムを1か所の「親プロジェクト」にまとめ、各シート(子)がそれを参照する形を作れます。これにより、親のコードを1回修正するだけで、配布済みのすべてのシートに最新の機能を反映させることが可能になります。今回は、今日から導入できるGASライブラリ構築の具体的なステップを詳しく解説します。

GASライブラリ構築の完全5ステップ

ライブラリの構築は、大きく分けて「親(提供側)」と「子(利用側)」の設定に分かれます。難しく感じるかもしれませんが、手順を追えば意外とシンプルです。以下の5ステップで、一元管理の環境を整えていきましょう。

ステップ1:ライブラリ用プロジェクトの作成(5〜10分)

まずは、共通のコードを置くための「親」となるプロジェクトを作成します。Googleドライブの「新規」ボタンから、Google Apps Scriptを新しく作成してください。ここに、各スプレッドシートで使い回したい関数(例えば、税計算、ログ出力、データ整形など)を記述していきます。

ここで重要なポイントがあります。ライブラリ内の関数の中には、外部(子シート)から呼び出されたくない補助的な関数もあるはずです。その場合は、関数名の末尾にアンダースコアをつけて「myFunction_」のように定義しましょう。こうすることで、ライブラリを読み込んだ側の補完リストに表示されず、非公開関数として扱うことができます。コードの安全性を高めるためにも、ぜひ活用したいテクニックです。

ステップ2:プロジェクトのデプロイ(5分)

コードが書けたら、それをライブラリとして「公開」する必要があります。スクリプトエディタの右上にある「デプロイ」ボタンから「新しいデプロイ」を選択してください。種類を選択するメニューで「ライブラリ」を選び、説明文(例:社内共通ツールVer1.0など)を入力して実行します。

デプロイが完了すると、画面に「スクリプトID」が表示されます。このIDは、子側のスプレッドシートから親を呼び出すための「住所」のようなものです。忘れずにコピーして控えておきましょう。このIDさえあれば、いつでもどこからでも共通機能を呼び出せるようになります。

ステップ3:スプレッドシート(子)側での追加(5分)

次に、実際に機能を利用したい「子」側のスプレッドシートを開き、スクリプトエディタを立ち上げます。左メニューにある「ライブラリ +」のアイコンをクリックしてください。するとIDの入力画面が表示されるので、先ほどコピーしたスクリプトIDを貼り付けて「検索」を押します。

正しいプロジェクトが表示されたら、最新のバージョンを選択して「追加」をクリックします。この時、「ID(識別子)」という項目がありますが、これはコード内でライブラリを呼び出す際に使う名前になります。デフォルトでも構いませんが、わかりやすい名前(CommonToolsなど)に変更しておくと、後のコーディングがスムーズになります。

ステップ4:関数の呼び出し(5分)

ライブラリが追加されたら、いよいよ呼び出しです。子側のスクリプト内で、設定した「ライブラリ名.関数名()」の形式で記述します。例えば、ライブラリ名を CommonLog と設定し、その中に calculateTax という関数を作っていた場合、以下のように呼び出します。

CommonLog.calculateTax(price);

このように記述するだけで、親プロジェクトにあるロジックが実行されます。子側のコードは非常にスッキリとし、メインの業務ロジックに集中できるようになります。複数のシートで同じ計算式を使いたい場合に、その威力を最大限に発揮します。

ステップ5:メンテナンス(更新時)

ライブラリの最大のメリットは、メンテナンスの手軽さにあります。将来的にロジックを修正する必要が出てきた場合、修正作業は「親プロジェクト」だけで完結します。コードを書き換えた後、再度「デプロイの管理」から新しいバージョンとして保存するだけです。

通常であれば、配布した全てのシートを一つずつ開いて修正して回る必要がありますが、ライブラリ化していればその必要はありません。修正の手間が激減するだけでなく、修正漏れによるバグの発生も防ぐことができます。まさに「一元管理」の理想形と言えるでしょう。

作業にかかる時間の目安と導入スケジュール

実際にライブラリ化を進めるにあたって、どれくらいの工数を見込めばよいかをまとめました。小規模なシステムであれば、1時間程度の集中作業で環境を整えることが可能です。

フェーズ 作業内容 目安時間
初期設定 ライブラリ用プロジェクト作成、デプロイ、ID取得 15分
コード移行 既存のコードをライブラリ用に整理・コピペ 15 〜 60分
紐付け作業 各スプレッドシート(子)へライブラリを登録 1シートにつき2分
動作確認 呼び出しが正しく行われるかのテスト 10分

合計時間は約45分から2時間程度です。移行するコードの量や、紐付けるスプレッドシートの数によって変動しますが、一度仕組みを作ってしまえば、その後のメンテナンス時間は限りなくゼロに近づけることができます。将来的な「修正コスト」を先払いするつもりで取り組んでみてください。

ライブラリ運用で失敗しないためのコツ

便利なGASライブラリですが、運用のコツを知らないと思わぬトラブルを招くこともあります。特に重要な「バージョン管理」と「権限設定」について触れておきます。これらを抑えておくことで、よりプロフェッショナルで安全な運用が可能になります。

バージョン管理を徹底する

ライブラリ側でコードを更新しても、子側で指定している「バージョン」を最新に切り替えない限り、古いコードが動き続けます。これは一見手間に見えますが、実は大きな利点です。なぜなら、「親を修正した瞬間に、検証していない全てのシートが一斉に壊れる」という事故を防げるからです。

ただし、開発中やデバッグ中の場合は、毎回デプロイしてバージョンを切り替えるのは非常に面倒です。そのような時は、子側のライブラリ設定でバージョンを「ヘッド(最新)」にしておきましょう。これにより、保存したコードが即座に反映されるようになります。開発が終わったら、安定したバージョン番号に固定して運用するのがベストプラクティスです。

権限設定の落とし穴に注意

ライブラリは、スクリプトファイルとしてGoogleドライブ上に存在します。そのため、ライブラリを利用するユーザー(または組織全体)には、親プロジェクトのファイルに対する「閲覧権限」が最低限必要になります。権限がない状態で子シートのスクリプトを実行すると、エラーが発生してしまいます。

社内配布を想定している場合は、親プロジェクトの共有設定を「組織内の全員が閲覧可能」にしておくと、個別に権限を付与する手間が省けます。セキュリティポリシーを確認しながら、適切な権限範囲を設定しましょう。この点さえクリアすれば、スムーズな一元管理が実現します。

いかがでしたでしょうか。GASライブラリによる一元管理は、組織のDXを加速させる強力な武器になります。まずは1つの共通関数から試して、その便利さを体感してみてください。保守作業から解放され、よりクリエイティブな業務に時間を使えるようになるはずです。

タイトルとURLをコピーしました