GoogleAppsScript

GASのライブラリを使って楽したい① とりあえず使ってみる_(:3」∠)_

More than 1 year has passed since last update.

Google Apps Script Advent Calendar四日目です。
今日からは三日連続でGASのライブラリ機能の話をしていきます。

今日はライブラリ機能の紹介ということでとりあえず公式ドキュメントにあるライブラリを使ってみます。

ライブラリとは?

怖い人達に刺されそうですが、簡単に言うと「便利な機能をまとめた物」です。
例えば日付の計算を楽にしたりできます。

GASでは比較的簡単に他人が作ったライブラリを自分のコード内で利用できます。

ライブラリの使い方

今回は冒頭でも書いたように、公式ドキュメントで紹介されている「Notable Script Library」の中から汎用的なメソッドをまとめたUnderscoreGSを利用してみたいと思います。

導入方法

  1. GAS Editorを開きます。

  2. 上のメニューから「リソース」→「ライブラリを管理...」を選択します。

  3. 「含まれているライブラリ」というダイアログが表示されるので下にある「ライブラリを検索」横のテキストボックスに「MiC3qjLYVUjCCUQpMqPPTWUF7jOZt2NQ8」を入力します。(この値をプロジェクトキーと言います)

  4. 「選択」ボタンを押して少し待つと、上の一覧にタイトル underscoreGSというのが出ます。

  5. 「バージョン」欄で任意のバージョンを選択します。最新でいいと思います。

  6. 下にある「保存」ボタンを押します。 ※他の物については後で説明します。

  7. 開いていたダイアログが閉じ、ライブラリが取り込まれた旨が表示されたらOKです。

ライブラリの利用

ライブラリの使い方は簡単で、上記ダイアログに表示されていた「識別子」を利用し識別子.メソッド()という形で利用できます。
また他のサービス(SpreadsheetAppとか)のように補完も効きます。

underscoreGSを使う.gs
function myFunction() {

  //underscoreGSを利用してランダム文字列を作成する
  Logger.log(underscoreGS._randomString(1000));

  //underscoreGSを利用して配列に指定した値が入っているか検査する
  Logger.log(underscoreGS._contains([1,2,3], 3));
}

この他にも多くのメソッドが利用できます。
元々underscoreGSはunderscore.jsと呼ばれるjavascriptのライブラリをGASに移行したものなのでドキュメントはunderscore.jsのものを見るといいでしょう。

ライブラリの設定

識別子

上記で利用したような識別子は任意で変更可能です。
ライブラリを追加した平ログで識別子欄を任意のものに変更してください。

ディベロッパーモード

ダイアログ内にあったデベロッパーモードとは開発時に利用されることを想定した設定です。
このモードをONにすると以下の様な挙動をします。

  • 常に最新の(もっと言えば書き途中の)ライブラリコードが利用されるようになります。 ※通常はバージョンというもので固定される
  • 補完はバージョン保存時のもののみが表示されます。
  • デバッグ時に同一のGAS Editor内でライブラリコードを表示できます。

ライブラリを利用した時によくわからない挙動をしたら利用してみるといいと思います。
あとライブラリのコードを見たい時とか(;・∀・)

参考:公式ドキュメント

ライブラリの削除

ダイアログ内の削除ボタンを押してください。

ライブラリのドキュメント

ダイアログ内のタイトル欄にあったアンカーを押すと見れます。
がNotable Libraryの奴はあんまり感とかかれてない印象です...

参考:UnderscoreGSのドキュメント

まとめ

今日はGASのライブラリについて触りの部分を紹介しました。
公式ドキュメントに紹介されているNotable Libraryはなかなか使えるものもいます。使えない奴もいます...

あと僕もSpreadsheetをSQLっぽく検索可能な「GSSDB」や、
DriveやURLからライブラリを読み込む「GASLoader」、
UIライブラリの「GAS Bootstrap」あたりを公開しています。

是非是非ライブラリ機能を利用して楽をしましょう。

明日は更にGAS専用ではなく、通常のJavascriptライブラリをGASライブラリ化してみたいと思います。