Amazonで商品を見るセール会場へ

GAS│ライブラリの作り方と使い方

google-apps-script-library

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を呼べています。

専用プロジェクトで実際に実行し、この結果と実行完了を確認しました。

Apps ScriptでPracticeLib.greetを呼び出し実行ログにこんにちは、練習と表示されている
別の練習プロジェクトから、ライブラリのバージョン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のエラーの調べ方を参照してください。

関連する既存記事と案内

関連する既存記事と商品案内を以下に掲載しています。

練習は本文の対象範囲を確認して進め、未検証の実行を確認済みとして扱わないでください。

次に学ぶ・作業環境を選ぶ

学習を続けたい方や、作業環境を整えたい方は、目的に合うガイドをご覧ください。

スプレッドシート・GASのおすすめ書籍

作業環境の作り方

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次