こんにちは。
自動化カテゴリ第1回目の投稿です!

記念すべき初回は、
私が前職を通して愛し続けた今もなお重宝しているGASについて書きます。
今回はGASを習得してもらうというよりは、
GASの良さを知ってもらい、使おう!と思ってもらうことがゴールです。

書き始めたところ早速長くなっているので、
2回に分けたいと思います。
今回が「GASってこんなにいいもの!」編で、
次回が「試しにいくつか使ってみよう!」編です。

GASってなに?

GASとはGoogle Apps Scriptの略で、
Googleが提供しているスクリプト実行環境(とそこで使う言語)です。
実はまだWikipediaにも日本語のページが存在しない、
まだ新しめの技術でもあります笑
https://en.wikipedia.org/wiki/Google_Apps_Script

私は前職の初めからずっと触ってきているのですが、
当時はネット記事や書籍も少なかったです。
今ではだいぶ情報が充実してきているので、
大体のことはQiitaとかで学べるようになってきました。

初心者にもおすすめな言語であり、サービス

GASはプログラミング初心者にもお勧めな言語です。
私自身、プログラミングを初めて1年足らずのときに、
このGASを使って現場で活きるツールを作ることができました。

日頃使っているGmailやスプレッドシートと連携できるので、
Googleサービスを使っている人なら誰でも、
すぐに身近で役立つものを作ることができます。

ベースはJavaScript

GAS言語のベースはJavaScriptです。
JavaScriptは主にブラウザで使うプログラミング言語ですが、
WEBサイトを作る人でないと馴染みがなかったりしますよね。
また逆に最近だとNodeJSのおかげでできることが増えすぎて、
その上フレームワークやデザインパターンも大量にあったりと、
勉強しようと思ってもどこから手をつければいいのかわからない、
というくらいにまで発展しています。
そういう理由もあって、
個人的にはJSやるよりもGASやった方が、
とっつきやすくて結果的にJSの勉強にも繋がるからいいんじゃない?
と思っています。

Googleアカウントさえあれば誰でも動かせる

GASはGoogleサービスの1つなので、
Googleアカウントさえ持っていれば誰でも今すぐ始めることができます。
開発環境と実行環境がセットになっているので、
わざわざどこかにアップロードしたり、コンパイルしたりといった作業も不要です。

GASをお勧めする理由

ここまでで、GASがプログラミング未経験者にとってもいい環境ですよ〜
ということを書いてきました。
ここからは、未経験向けとか現役SE向けとかは取っ払って、
いかにGASが優秀かということについて書いていきます。

Googleサービスとの連携がすごい

なんと言ってもこれ。笑
GmailやGoogleカレンダーなど、
Googleサービスを使っている方は多いのではないでしょうか。
私自身、メール/カレンダー/ドライブ/スプレッドシート/翻訳など、
大体のデスクワークはGoogleを頼りにしています。
GASはこれらGoogleサービスと連携することができるんです!

これの何がすごいかと言うと、
難しい認証を通したり、外部サーバから穴あけしたりする必要がないと言う点です。
認証については、全て裏で自分のGoogleアカウントを通すので、
スクリプトに対して自分のメールやカレンダーに対するアクセスをボタンぽちぽちで許可すれば済みます。

私の場合、前職はセキュリティが厳しく、
手製アプリでGoogleサービスに接続するためにはプロキシを通したり、場合によって会社に申請をあげる必要がありました。

GASであれば全てがGoogleアカウント内で完結するので、
この辺の調整に悩む必要がありません。
(外部へのAPI公開とかもできちゃうので、ここは注意が必要です)

外部サービスにも接続できる

GASではJavaScriptと同じように、
外部サービスにAPIを叩いたり、
逆に外部サービスからGASに向けてAPIを叩くことができます。

ちなみにAPIというのはざっくりいうと、
別々のコンピュータ同士で主にインターネットを介して、
サービスを利用したり、提供したりする手続きのことです。
皆さんもスマホで誰かに電話をかけて、
質問したり用事をお願いしたりすると思いますが、
それをコンピュータがネットを使ってやっているものだと思ってください。

私の場合、GASを使ってRedmineやJIRAなどの課題管理ツールと繋いで情報を取得/登録したり、
SlackやChatと繋いでbotを作ったりしています。

プロジェクト用の運用サーバをもらえている場合ならまだしも、
こういうのを無料でやろうとすると、
どうしても自分のPCにアプリを仕込まざるを得なかったりして、PCを立ち上げっぱなしにする必要があったりします。
その点GASを使えば、自分の端末と切り離してプログラムを実行できるので、
業務への組み込みがしやすいです。

最高のサーバレス環境

GASは実行環境まで込み込みのサービスなので、
わざわざ自分でサーバーを用立ててプログラムを仕込む必要がありません。
これをサーバレス(=サーバ不要)といいますが、
GASは誰でも無料で使える、最高のサーバレス環境なのです。

サーバレスという言葉を聞いたことがある人がよくイメージするのが、
「AWS Lambda」でないでしょうか。
Lambdaは常にどこかのサーバ上でプログラムが待ち受けているわけではなく、
呼ばれた時にだけ発行されて、呼ばれた時間・リソースに応じて課金するものですよね。

GASなら余程ヘビーユーズしない限り、無料です。
(その分パフォーマンス・安定性は劣るので、高い信頼性を求めるサービスには微妙ですが..)

しかも上述したとおりスプレッドシートやドライブと連携できるので、
これらと組み合わせることでスプレッドシートをデータベース、
ドライブをファイルサーバのようにして使うことで、
本格的なアプリケーションを作ることができるのです。

今回はここまで。
GASの素晴らしさ、感じてもらえたでしょうか。
感じてくださった方は、是非次回の実践編もあわせてご覧ください。