2019年04月29日更新
Google Apps Scriptとは?メリットと入門的な使い方やできることを解説!
Google Apps Scriptは、Googleのサービスを連携して操作するWeb上のプログラミング環境です。Google Apps Scriptを使えば、Googleドキュメントに届いた英文資料をGoogle翻訳で日本語にして受け取ることもできるのです。
目次
- 1Google Apps Scriptについて
- ・Google Apps Scriptの特徴は?
- ・Googleの関連サービスと連携できる
- 2Google Apps Scriptがあるサービス
- ・Google Apps Scriptのメリットとデメリット
- ・Google Apps Scriptでできること(メリット)
- ・Google Apps Scriptのデメリット
- 3Google Apps Script入門者向けガイド
- ・GoogleドライブからのGoogle Apps Scriptの立ち上げ方
- ・それ以外のサービスでのGoogle Apps Scriptの立ち上げ方
- 4基本構文の書き方
- ・if文
- ・for文
- 5Google Apps Scriptでコードを書いてみよう!
- ・Googleの記事が気になった方にはこちらもおすすめ!
Google Apps Scriptについて
Google Apps Scriptは、GASとも略されるGoogleがWeb上で提供するプログラム開発環境です。Googleのサービスらしく無料で利用できるGoogle Apps Scriptでできることと言えば、Googleが提供する各種サービスとも連携して、単純な命令で複数のサービスにまたがる面倒な手続きを簡略化することです。
機能的には、Microsoft Officeで動くVisual Basic for Applications(VBA)のGoogle版と考えれば、さほど問題はありません。しかし、言語的には大きな違いがありますし、GoogleのサービスはMicrosoft Officeとは比べ物にならないほど広範囲に広がっていますので、できることもVBAよりはるかに多くなります。
それでいて、使い方は簡単なので、Google Apps ScriptはJavaScriptの入門用にも最適なプログラム開発環境と言えます。
Google Apps Scriptの特徴は?
Google Apps Scriptは、「Script」とあることからわかるように、ブラウザ上で動く「JavaScript」をベースに、Web上のGoogleのサーバー上で動くように改変されたプログラム開発環境です。そのためブラウザのウインドウを直接操作したり、ドキュメントを表示したりといった機能は存在しません。
機能的にVBAに似ていると言っても、その使い方には大きな違いがあるわけです。
その反面、「App」の名前がついていることからわかる通り、Googleの各種サービスのアプリケーションと連携が、Google Apps Scriptにできることとして挙げられます。この点については、同様に「Application」の名前を持つVBAに似ていると言えます。
ただし、Google Apps Scriptには基本的にマクロ機能は備わっていません。スプレッドシート上ではマクロ機能の一部が利用できるものの、VBAほどには融通が利きません。この点でもGoogle Apps ScriptはVBAと同じ使い方はできないのです。
Googleの関連サービスと連携できる
Google Apps Scriptの大きなメリットに、Googleのほぼすべてのサービスと連携した使い方ができることが挙げられます。ただし、Google Apps Scriptを作成できるサービスは以下の5つのサービスで、ほかのサービスはこれらの上(多くはGoogleドライブ上)で作成した「プロジェクト」と呼ばれるスクリプトから呼び出すことになります。
- Googleドキュメント
- Googleスプレッドシート
- Googleフォーム
- Googleスライド
- Googleドライブ
その上、Google Apps ScriptはGoogle以外のChatworkやSlack、Twitterなどの外部アプリケーションとも、外部API経由で連携する使い方ができるのです。
Google Apps Scriptがあるサービス
上に記したように、Google Apps Script自体があるサービスは5つしかありません。基本的にはすべてのサービスを管理するGoogleドライブ上でプロジェクトを作成することになります。
とはいえ、Googleスプレッドシート上で顧客管理して、そこからメールを発送する、などという使い方の場合には、いちいちGoogleドライブに移動してGoogle Apps Scriptを呼び出すよりも、Googleスプレッドシート上から直接Google Apps Scriptを呼び出すのが得策となります。
ケースバイケースで、妥当なサービス上でGoogle Apps Scriptを作成するのが正しい使い方となります。
Google Apps Scriptのメリットとデメリット
Google Apps Scriptには、Web上のプログラム開発環境であることによるメリットと、それ故に生じるデメリットがあります。
Google Apps Scriptでできること(メリット)
Google Apps Scriptは、GoogleによってWeb上に用意されたプログラム開発環境であり、プログラム実行環境でもあります。そのため、すべてがGoogleに囲い込まれており、エディタからサーバーまでほとんどのことがWeb上のGoogleにお任せ、かつ無料で済むので、非常に気軽に利用でき、プログラム学習の入門にも向いています。
Google Apps Scriptは完全無料の開発用エディタが利用できる
通常のプログラム開発環境では、まず開発環境のセットアップが必要ですが、Google Apps Scriptにはあらかじめ開発環境が用意されています。特筆すべきは、先に記したいくつかのGoogleのサービスにアクセスし、ブラウザ上でGoogle Apps Scriptを呼び出すだけで、開発用のエディタでスクリプトを書いていくことができることです。
もちろんプログラム記述用のエディタとして要求される、シンタックスハイライトやサジェスト機能などの各種ツール類も備わっています。しかもGoogleのツールですから、当然のように無料で利用できます。もちろんその代償として、個人情報がGoogleの手に渡っていますから、利用しないと損していることにもなります。
Google Apps Scriptは自分でサーバーを用意する必要がない
Google Apps Scriptが、Googleのサーバー上で稼働できることの意義は非常に大きいと言えます。そのため、ネット上にサーバーを確保する必要もなければ、自前のPCにサーバー環境を設置する必要もないのです。ここに労力を払う必要がない点も、Google Apps Scriptを入門用プログラム開発環境としておすすめできることの一つです。
また、Googleサーバーは24時間休みなく動いていますから、自分のパソコンの電源を落としたり、Googleのサービスにアクセスしているブラウザを終了させたりしても、問題なく指定した時間やトリガーに合わせて動作してくれます。VBAがMicrosoft Officeを立ち上げておくことを前提としていることに比べれば、そのメリットの大きさが理解できます。
Google Apps ScriptはWebアプリケーションを開発することが可能
Google Apps Scriptのメリットには、HtmlServiceオブジェクトを扱うことでWebページを作成することができることも挙げられます。もちろんそのほかの関数を使うことでWebページの操作も可能です。
これらの関数とGoogleの各種サービスの使い方次第で、スプレッドシートから簡単に目的のデータを引き出すWebアプリケーションを作ったり、Webページに入力された情報をGoogleドキュメントに蓄えたり、さらにはドキュメントを自動生成したり、社内情報を共有したりなど、さまざまなWebアプリケーションを作成できるのです。
しかもこうして作成されるWebページは、デフォルトではhttps://script.google.com/以下にオリジナルのURLで作成されるため、Webアプリケーション用のサイトなどを別に用意しておく必要もありません。
Google Apps Scriptはプログラムの自動化を簡単に行える
そしてなによりも大きいのが、Google Apps ScriptならGoogleの各種サービスや外部サービスを横断してプログラムすることで、各種サービスの自動化ができることです。本来なら、各種サービスが担う部分までをプログラムしなければいけないところを、それぞれのサービスにいわば下請けに出すことで、容易に自動化できるというわけです。
たとえば、地震が起きた場合に震度4以上の地点があればそれをメールする、とか、毎朝定時に前日からその時点までのスプレッドシートに付加されたデータをGoogleドキュメントにまとめて各自のGoogleドライブに配布する、などといった、人間の手を患わせないトリガーで作業を自動化する使い方が可能なのです。
しかも先にも記したようにGoogle Apps Scriptは24時間稼働中のGoogleのサーバー上で動きますから、サーバー保守の手間もかかりません。安心して自動化を任せることができるのです。
Google Apps Scriptのデメリット
Google Apps Scriptのデメリットは、そのままメリットの裏返しとなります。
- 開発用エディタが制限される……自分の好きなエディタで開発するのが難しい
- 自分でサーバーを用意する必要がない……サーバーに問題が生じた場合はGoogleの対応を待つしかない
- Webアプリケーションを開発することが可能……Webアプリケーションしか作成できず、PC上で単独で利用できるアプリケーションは作成できない
- プログラムの自動化を簡単に行える……各種サービスが対応できないことを処理するのは難しい
そして、Google Apps ScriptにはPC上のローカル側に存在するファイルなどに直接アクセスできないという最大のデメリットがあります。しかしこれは、多くのWebサービスがかつてデメリットとして指摘され、現在ではそう捉えられなくなったデメリットです。したがってこれらをデメリットとするのは、過渡的な状況の今だけの見方だと言えそうです。
Google Apps Script入門者向けガイド
Google Apps Scriptが、「Googleドキュメント」「Googleスプレッドシート」「Googleフォーム」「Googleスライド」「Googleドライブ」の5つのサービスから呼び出しができることは、先にも記した通りです。ただし、GoogleドライブとそのほかのサービスではGoogle Apps Scriptの使い方が少々異なります。
GoogleドライブでGoogle Apps Scriptを使用する場合は、単独でひとつのプログラムとして利用できるのですが、そのほかのサービスでの使い方はそれぞれのスプレッドシートやドキュメントに含まれたプログラムとして、いわばMicrosoft Officeのマクロのような感じで設定されるのです。
Googleドライブで作成する単独で利用できるタイプのGoogle Apps Scriptを「Standalone」と呼び、スプレッドシートやドキュメントを呼び出さないと利用できないGoogle Apps Scriptを「Container Bound」と呼びます。
ここからはGoogle Apps Scriptの入門のそれまた入門編として、Google Apps Scriptの立ち上げ方と、簡単なif文とfor文による繰り返しの使い方をお伝えします。
GoogleドライブからのGoogle Apps Scriptの立ち上げ方
それではGoogle Apps Scriptの入門のそれまた入門編にあたる、Googleドライブからの立ち上げ方です。まずGoogleドライブをブラウザで開いたら、「+新規」ボタンを選択します。
するとプルダウンメニューが開きますので、「その他」を選び、さらに「+アプリを追加」をクリックします。
「ドライブにアプリを追加」のポップアップウインドウが開きますので、カーソルを「Google Apps Script」の上に持っていきます。
カーソルが「Google Apps Script」の上にくると表示が切り替わりますので、「+接続」をクリックします。
確認画面がポップアップしますので、「OK」を選びます。
改めてGoogleドライブの「+新規」ボタンを選択し、プルダウンメニューから「その他」→「Google Apps Script」と進みます。
するとエディタ画面が別タブで開きますので、ここでGoogle Apps Scriptを入力実行できるようになります。
それ以外のサービスでのGoogle Apps Scriptの立ち上げ方
Googleドライブ以外のサービスでは、適当なドキュメントを立ち上げた上で、メニューバーの「ツール」をクリックしてプルダウンメニューを表示したら、その中から「スクリプトエディタ」を選択します。
こちらでも別タブでエディタ画面が開きますので、そちらでGoogle Apps Scriptを作成できます。
基本構文の書き方
それでは実際にGoogle Apps Scriptでスクリプトを入力して実行します。今回は入門編なので、Googleドライブでもスプレッドシートでもドキュメントでもかまいません。エディタ画面を立ち上げたら、1行目の「function myFunction() {」のあとに、ソースコードを入力してください。
if文
プログラムはつまるところ、「もし××だったら○○して、そうでなかったら△△する」という手順の繰り返しです。そのため、if文は条件次第で処理が分岐する、プログラムの基本であり、入門編の第一歩として最適と言っていいでしょう。
今回は変数xを与えて、10より小さかったらログに「10より小さいです」と表示し、そうでなければ「10以上です」と表示するプログラムを作ります。
プログラムソースコード
var x = 11;
if ( x < 10 ) {
Logger.log("10より小さいです");
}
else {
Logger.log("10以上です");
}
解説
冒頭の「var x」は「x」という変数を宣言しています。Google Apps Scriptでは「最初にこれから使う変数はこれこれです」とプログラム上で伝えておく必要があります。このことを「宣言する」と呼びます。
さらに「x = 1」として、変数「x」に「1」を代入します。
つづく「if ( x < 10 )」で変数xが10未満ならば、続く{}内のことをせよ、と指定します。その{}内にある「Logger.log」は「つづく文字列や変数をログウインドウに表示」します。つまり、「Logger.log("10より小さいです")」でログウインドウに「10より小さいです」と表示するという意味になります。
さらに「else」は先行する「if」の条件を満たさなかった場合の処理を示します。「else」以下に「Logger.log("10以上です")」とあるため、「if」の条件、つまりxが10未満でなければログウインドウに「10以上です」と記すことを意味します。
Google Apps Scriptでの入力と確認方法
それでは実際に先のソースコードを入力して、「▶」アイコンの「実行」ボタンをクリックします。
続いて実行結果を確認するためにログウインドウを表示させます。メニューバーの「実行」をクリックしてプルダウンメニューから「ログ」を選択します。
するとログ画面にしっかりと「10以上です」と表示されているのが確認できます。確認し終えたら「OK」ボタンをクリックしてログウインドウを閉じます。
このあと、xの値をいろいろと変更したり、if文の条件を変えたり、それに合わせてログウインドウに表示する文字列を変更したりして、if文に慣れてください。
for文
for文はif文のいとこです。繰り返しの処理に使われますが、その回数に達しているかをいちいちif文でチェックするのではなく、for文の内部で条件に達しているか否かをチェックするのです。if文でたとえるなら、ある条件に達していれば次の処理を行ってもう一度チェックを行うということを繰り返し、条件を満たさなければ別の処理をするコマンドです。
プログラムソースコード
for ( i = 0; i < 3; i++ ) {
Logger.log(i + "回目の表示です");
}
解説
「for」の条件として、変数「i」に初期値「0」を代入して「i < 3」かどうかをチェックし、{}内の処理を行い、それが終了したら「i++」で変数「i」に1を加える、ということを繰り返すプログラムです。
ログウインドウに表示されているように、1回のループに1ミリセコンドかかっていて、4回目のチェックで変数「i」が「i < 3」の条件を満たせなかったためにプログラムが終了したことがわかります。
先のif文同様、数値を変えたり、条件を変更したり、表示される文をいじったりしてfor文に慣れてください。
Google Apps Scriptでコードを書いてみよう!
各種サービスを自在に組み合わせられるのですから、Google Apps Scriptでできることは無限大です。今回は入門のそれまた入門部分までしか紹介できませんでしたが、この記事を手がかりにして、Google Apps Scriptで自分の役に立つ便利なスクリプトを組み上げ、生産性を向上させることを願っています。