Apps Scriptのライブラリは、別プロジェクトの関数を識別子で呼び出す仕組みです。
まず自分だけの2プロジェクトで挨拶を返す関数を試し、保存バージョンを指定して呼び出します。
スクリプトIDと、コード内で使う識別子は別です。
1:ライブラリ側に小さい関数を保存する
Apps Scriptで新規プロジェクトを作り、「ライブラリ練習」などの名前で保存します。
初期のmyFunctionを次のコード全体へ置き換え、保存します。
greetは引数の文字列に挨拶を付けて返す関数です。
DriveやGmailなどのデータは読み書きしません。
function greet(name) {
return 'こんにちは、' + String(name);
}
function testGreeting() {
console.log(greet('練習'));
}
2:バージョン1を作り、スクリプトIDを確認する
「デプロイ」→「新しいデプロイ」を開き、種類の選択で「ライブラリ」を選びます。
説明を入れてデプロイすると、バージョン1が保存されます。
他のユーザーへ共有せず、自分のアカウントだけで練習できます。
左の「プロジェクトの設定」でスクリプトIDを確認し、控えます。
デプロイIDやGoogle Cloudのプロジェクト番号と取り違えないでください。
3:別プロジェクトでバージョンと識別子を指定する
別の新規プロジェクトを作り、左の「ライブラリ」の追加ボタンを押します。
元プロジェクトのスクリプトIDで検索し、バージョン1を選びます。
「ID」の欄をPracticeLibにして追加します。
この欄の値がコード内の識別子です。
SpreadsheetAppなどの既存サービスと同じ識別子は避けます。
function testLibrary() {
console.log(PracticeLib.greet('練習'));
}
呼出し側へ上のコードを保存し、testLibraryを選んで実行します。
実行ログに「こんにちは、練習」が出れば、別プロジェクトのバージョン1を呼べています。
専用プロジェクトで実際に実行し、この結果と実行完了を確認しました。

4:更新は新しいバージョンを作ってから切り替える
ライブラリ側の「こんにちは、」を「ようこそ、」へ変えて保存しても、呼出し側がバージョン1を指定している限り、結果は「こんにちは、練習」のままです。
この挙動を実機で確認しました。
保存バージョンと編集中のHEADを区別してください。
元プロジェクトで「デプロイ」→「デプロイを管理」→「編集」を開き、バージョンに「新バージョン」を選んでデプロイします。
今回の練習ではバージョン2ができました。
呼出し側でPracticeLibを開き、バージョン2へ変更して保存すると、実行結果が「ようこそ、練習」へ変わりました。
選択肢に新しい番号が出ない場合は、未保存の変更を保存してから呼出し側の画面を再読み込みします。
5:問題があれば呼出し側のバージョンを戻す
PracticeLibの設定でバージョン1へ戻して保存し、testLibraryを実行します。
今回の実機検証では「こんにちは、練習」に戻りました。
元のバージョンは削除せず保持します。
HEADは開発用の選択肢で、利用には編集権限と少なくとも1つの保存バージョンが必要です。
通常の利用では確認できた保存バージョンを指定してください。
検索・呼出し・別アカウントで失敗する場合
| 症状 | 確認する項目 |
|---|---|
| 検索で見つからない | スクリプトID、保存バージョン、実行するアカウントの閲覧権限を確認する |
| PracticeLib is not defined | 呼出し側に追加済みか、識別子がPracticeLibかを確認する |
| greet is not a function | 選択バージョンに関数があるか、関数名が一致するかを確認する |
| 元を編集しても結果が変わらない | 保存しただけか、新バージョンを作ったか、呼出し側の番号を確認する |
| メニューやonOpenが動かない | 呼出し側にトリガー用の入口を置く。ライブラリを追加するだけで単純トリガーが起動するわけではない |
別のアカウントへ渡す場合は、使う相手だけへライブラリ側プロジェクトの閲覧権限を付与し、保存バージョンとスクリプトIDを伝えます。
基本のライブラリ利用のために、リンクを知る全員へ公開したり、標準GCPプロジェクトへ切り替えたりする手順は必須ではありません。
外部APIやOAuthを使う処理の設定は、ライブラリの基本共有とは別に確認します。
この検証では別アカウントへの共有・通知・Google Cloud設定変更は行っていません。
公式のライブラリの案内と保存バージョンの案内を確認できます。
基本の2ファイルは練習用ファイル・コード・ローカル検証をまとめたZIPにも含めています。
共有範囲の見方はGoogleドライブ│共有設定と権限の違い|閲覧者・コメント可・編集者・リンク共有、エラーを切り分けるときはGASのエラーの調べ方を参照してください。
関連する既存記事と案内
関連する既存記事と商品案内を以下に掲載しています。
練習は本文の対象範囲を確認して進め、未検証の実行を確認済みとして扱わないでください。




