humangas's blog

自分用のメモなので雑です。

GAS(Google Apps Script)事始め

自分とこの会社はGoogle Apps を利用してます。
Google Appsはすごい使いやすいし、便利ですが、全てにおいて万能ではありません。当たり前の話ですが、自分がやりたいことは自分で合わせなければなりません。

業務で使ってると何かとルーチンが発生します。そういう時、例えばExcelでいうとVBA(=マクロ)があったりしますが、Google Apps(というかGoogleサービス)にもやっぱあります。

それが、GAS(=Google Apps Script)です。

これをちょいとでも使えるようになると、色々と役に立ちます。主にルーチン減らしです。さらに発展させると、GASで作ったレポートなどから新たなアイデアが浮かぶとか、今の仕事をさらに発展させることも出来るかもしれません。

ただ、何でもそうですが、どっから手を付けて良いのか? てなるので、自分が始める上で必要と思う最低限のことをメモしておくことにしました(何かしらのプログラムを書いたことある人向けです)。


※ちなみに、この記事はQiitaに投稿した以下の記事を書く時に、GASの事始めについても自分用にまとめておこうと思いついて書いたものです。


GASとは?

=Google Apps Scriptの略です。ガスとかギャスとか呼ぶらしいです。自分はガスと呼んでます。

ざっくり一言で言うと、Google版のExcel VBA(マクロ)と思えばいいと思います。

ほぼ全てのGoogle 系のサービスにGASのAPIが用意されてるので、自分のアイデアを実装次第でだいたい形に出来ます。

さらに、URLフェッチ(UrlFetchApp.fetch)を使って外部のAPIを呼び出す(情報取得する)ことも出来ます。

GASを書き始めるための準備

今回は、よくあるであろうスプレッドシートでGASを使うための手順を書きます。
スプレッドシート以外だと、FormやDocs、SitesでもGASを直接書けます。よく使うライブラリ集などを作りたい場合は、「スクリプト」自体をファイルとしてDrive上に作成し、呼び出すことが出来ます(この方法はまた今度)。

適当なフォルダの中にスプレッドシートを作成します。

例では"_test"フォルダ配下に作ってますが、別にDrive直下でもどこでもOKです。

f:id:Humangas:20140211180644p:plain

f:id:Humangas:20140211180647p:plain

スプレッドシートの「ツール>スクリプトエディタ」を押下します。

FormやDocsでも同じです。

ただし、Sitesの場合は、以下のオペレーションが必要です。
※その際、そのSitesに対して管理者権限を持っている必要があります。

  • サイト右上ボタン:その他> サイトを管理> Apps スクリプト> 新しいスクリプトを追加

f:id:Humangas:20140211181250p:plain

「空のプロジェクト」リンクを押下します。

その他にも各Googleサービスを使うためのテンプレートが作成できます。気になるひな形リンクを押下すれば良いでしょう。今回は真っさらな状態(=空のプロジェクト)でやってみます。

f:id:Humangas:20140211180649p:plain

何をどう書けば良いかは「API リファレンス」を参照します。

APIリファレンスページの左メニューに各Googleサービス名が書いてあります。
プログラムを書いた事がある人ならだいたいココをひと通り見れば、何が出来るかイメージが湧くと思います。

f:id:Humangas:20140211180651p:plain

f:id:Humangas:20140211180656p:plain


Hello GAS!

Logger.logはよく使います。デバッグ時に有用です。
まずは、これの使い方を覚えておいたほうが良いでしょう。
これを使ってHello GASをやってみます。

function myFunction() {
    Logger.log('Hello GAS!');
}


実行後、以下のオペレーションでログが確認できます。
※ 実行方法は後述します。

f:id:Humangas:20140211184031p:plain

f:id:Humangas:20140211185031p:plain

ちなみに、コードアシストが使えます(Ctrl + Space)。

f:id:Humangas:20140211184029p:plain


実行 & デバッグ

この図を見れば、だいたい分かると思います。
注意は、実行するFunctionを選んでから実行というところだけです。

ブレークポイントを置けば(ダブルクリックで)、デバッグ(虫マーク押下)時に、そこで止まります。
デバッグ時は、デバッグウィンドウも同時に表示されるので、変数の中身が確認出来ます。

f:id:Humangas:20140211184030p:plain


トリガー(スケジューラ)

書いたGASを指定したスケジュールなどで、自動実行させたい場合は、トリガーを設定します。下図を見れば分かると思います。

時間起動の他、予め定義されたアクションに対するトリガーでFunctionを起動することも出来ます。例えば、スプレッドシートを開いた時、フォームの送信ボタンが押下された時、などです。

f:id:Humangas:20140211180652p:plain

f:id:Humangas:20140211180658p:plain

f:id:Humangas:20140211184016p:plain


ショートカット

いくつかショートカットがあります。
自分で割り当てることは出来ませんが、よく使う機能には予めショートカットが割り当てられています。

メニューを適当に見てみて下さい。機能名の横にショートカットキーが記載されています(例:ログ→ Command + Enter)。

f:id:Humangas:20140211184031p:plain


こちらにショートカットが纏められていますので参考になります。

この他にも機能ややれることが色々ありますが、まずは事始めということでココまで。