Google Apps Script(GAS)入門 ライブラリとは?メリットと導入方法を解説
Google Apps Script(GAS)には、ライブラリというGASで作った関数を、別のプロジェクトで利用する機能があります。
今回、GASのライブラリについてメリットと注意点、導入手順を紹介します。
GASのライブラリとは?
Google Apps Script(GAS)には「ライブラリ」と呼ばれる機能があります。
これはGASで作成した処理を行う関数を、別のプロジェクトでも利用することができる機能です。
GASの関数処理を用意したスクリプトを作成し、ライブラリとして利用できるように設定すれば利用可能になります。
自分で作成したもの以外でも、他の人が作成して公開しているライブラリも利用することができます。
GASスクリプトにライブラリを導入するメリット
Google Apps Scriptでライブラリを利用するメリットとして、スクリプトの開発効率が上がることが挙げられます。
ライブラリでは、標準で用意されていない複雑な処理を実行できるメソッドが用意されています。
自分でGASのコードを書いた場合にはかなりの行数が必要になるものが、ライブラリを使えば、1行で実行できるケースもあります。
そうした点からライブラリを導入することで、GAS開発を効率的に行うことが可能になります。
ライブラリのデメリット・注意点
一方で便利なライブラリにもデメリットはあります。
それはライブラリを利用することで、別のGASプロジェクトの関数を呼び出すため、読み込みや処理に時間がかかることです。
ライブラリを使用しない単独のスクリプトと比較すると実行速度は遅くなってしまいます。
GASには実行時間制限が6分という制約があり、6分以内にスクリプトが終了しないと処理が強制終了されます。
そのため、実行速度が求められる場合や、実行時間が長い場合にはライブラリを導入するか検討が必要です。
ライブラリの導入方法
Google Apps Scriptで実際にライブラリを導入する手順について解説したいと思います。
どんなライブラリでも導入手順は同じです。
1.スクリプトエディタのメニュー「リソース」>「ライブラリ」をクリックします。
2.「Add a library」にライブラリのプロジェクトキーを入力し、追加ボタンをクリックします。
※2020年3月22日現在、GASの表示が日本語・英語が混在している状況です。
今回は、GASのライブラリで有名な「Moment」を入力します。
Momentは日時を扱う便利な機能を提供するライブラリです。
Monmentのプロジェクトキーは「MHMchiX6c1bwSqGM1PZiW_PxhMjh3Sh48」です。
3.プロジェクトキーを入力すると、ライブラリが表示されるので、そのバージョンを選択します。
4.基本的にバージョンはバグ情報等無い限り、最新版を選択するようにしましょう。
※Momentライブラリの場合は、2020年3月22日時点で最新のバージョン9を選択します。
バージョン選択後に「保存」ボタンをクリックして、ライブラリ導入は完了です。
導入したMomentライブラリを使用してみる
先程導入したMomentライブラリを実際に使用するサンプルコードを紹介します。
日時に関する機能はGASでは通常、Dateオブジェクトを利用します。
しかし、Dateオブジェクトの場合、日時の計算や比較などの処理するのが面倒です。
それがMomentライブラリを活用することで日時計算が簡単に行うことができます。
function momentTest() {
var momentData = Moment.moment().format();
Logger.log(momentData);
}
上記のサンプルコードでMomentライブラリが正常に稼働していることが確認できます。
もし前段で設定したMomentライブラリを削除した場合、上記コードの実行はエラーすることになります。
まとめ・終わりに
今回、Google Apps Scriptで利用可能なライブラリについての解説と導入手順を紹介しました。
ライブラリを利用することで通常のGASでは実装に手間がかかる複雑な処理を簡単に実装し、開発効率化を図ることができます。
GASでは今回紹介したMomentライブラリ含め、色々と便利なライブラリが公開されていますので、ぜひライブラリを活用して開発を進めましょう。
ディスカッション
コメント一覧
The article was rather catching and interesting enough to get all
possible nuances to remember. I do enjoy reading the content and the writing
manner of the author, etc as I did when finding
https://jonlakephotography.com/effective-learning-strategies/. I advise you to write such sorts of articles every day to provide the audience like me all of the necessary information. In my
view, it’s much better to be ready for all the unexpected scenarios in advance, so thanks, it was pretty
cool.