初回のトピックは『Google Apps Scriptとは』という疑問にお答えするところから始めたいと思います。
Google Apps Scriptとは、Javascriptと呼ばれるプログラム言語を元にしてGoogleが開発したスクリプト言語です。スクリプト言語とは、要するに比較的簡単なプログラム言語のことです。Googleが開発した言語だけあり、Googleが提供しているG Suiteアプリ(Googleドキュメント、Googleスプレッドシート、Googleスライド、Googleカレンダー等)との親和性が高く、手動でできる操作はほぼ全てプログラムからも実行ができます。とても連携がしやすいプログラム言語と言えるでしょう。
MicrosoftのExcelでもマクロ機能というプログラムを利用してワンクリックでいろいろな処理を実行できたりしますが、Google Apps Scriptでも同じような機能はもちろん、アイディア次第ではそれ以上のプログラムを実現することができるのがGoogle Apps Scriptというプログラム言語となります。
ここからはGoogle Apps Scriptのいいところや、オススメする理由を説明していきます。
Google Apps Scriptの良いところ
- インストールする必要ナシ
- 利用料金は必要ナシ
- 開発環境はGoogleが用意
- 比較的習得しやすい言語であること
- 簡易なものから本格的なものまで幅広く開発できること
Google Apps Scriptは、Googleのサーバー上で開発を行うため、なにか新たにソフトをインストールする必要もなければ開発用のコードエディタを用意する必要もありません。Googleアカウントがあればアイディア次第でだれでもGoogle Apps Scriptを利用して素晴らしいプログラムを開発することができるのです。
習得の難易度については、プログラム言語の中では比較的習得しやすい言語だと思いますので、日本語の情報が少ないことを抜かせば初心者にもオススメできるプログラム言語だと考えています。
Google Apps Scriptの開発環境
Google Apps Scriptの開発環境はGoogleから用意される『スクリプトエディタ』と呼ばれるクラウド上で動作するテキストエディタを用いて行います。
このスクリプトエディタには、開発に必要な基本的な機能が全て用意されています。プログラムの開発から、デバッグと呼ばれるテスト運用、そして最終的なプログラムの実装までをスクリプトエディタを使って行うことができます。
エディタ上では、コードの内容によって文字の色が変わったりして使用者にプログラム内容をわかりやすく表示してくれます。
入力補完機能も付いていますのでコードを1から10まで全て覚えていなくても、途中までコードを入力すると利用できるコードの候補がいくつか出てきますので、その中から必要なものを選ぶだけである程度の開発を行うことができとても便利なツールとなっています。
Google Apps Scriptので出来ること
Google Apps Scriptはとても万能なプログラム言語ですので様々なプログラム開発に応用できるのですが、漠然としていて正直実際に何が出来るのかイマイチイメージできない方々も多いことと思います。
ここでは、Apps Scriptで具体的にどのような事ができるかいくつか箇条書きで例をご紹介します。
- キュメント、スプレッドシート等のG Suiteサービスの作業自動化
- Googleドキュメント、スプレッドシート、フォームにカスタムメニューやダイアログ、サイドバーの追加
- スプレッドシートで使用できるカスタム関数の開発
- Webアプリの開発
- 他のGoogleサービスと連携
- Googleドキュメント、スプレッドシート、スライド、フォーム用のアドオンの開発
- 開発したアドオンをアドオンストアで配布
- Android端末用のアドオンの開発
- ハングアウト用のチャットボットの開発
- 他社サービスとの連携
- Webサイトのスクレイピング
Googleのサービスに追加機能を付与したり、Googleのサービス間の連携を手助けしたり、新しいアプリを開発したりといったこと実現可能です。
Google Apps Scriptを使うことのメリット
Google Apps Scriptのメリットは少しずつ伝わっているかと思っていますが、使うことのメリットをもう一つ話そうと思います。これはGoogle Apps Scriptに限った話ではないのですが、プログラムを利用することで私たちが受けられるメリットはたくさんあります。効率化されて仕事が楽になるのは言うまでもありませんが、それに付随して得られるるメリットも数多くあるのです。
- 効率化で空いた時間に更なる効率化プランを考えられる
- ミスが軽減される(人の手が加われば加わるほどミスの確率は高くなる)
- 作業量が減るので作業がラクになる
- ミスが軽減されるので、確認する側もラクになる
- 関数を壊されてデータが算出できなくなるというようなこともなくなる
- 見せたくないデータを見せずにプログラムだけで処理をすることができる
- 順序立てて説明する能力が身につく
このような付随的メリットは一つ一つは小さなメリットかもしれません。しかし、いくつも合わさればとても大きなメリットに変貌を遂げます。一度この好循環に入ることができればいろいろなアイディアが生まれてくるでしょう。
新しいプランやアイディアを考える時に私が一番重要だと思うこと、それは『如何に自由で暇な時間を作れるか』ということだと思っています。自由な時間がなければ新しい見聞を広めることはできませんし、プランやアイディアを考える時間を作ることもできません。プログラムで単純作業に割く時間を削減することでそのチャンスが大きく広がるのであれば私はどんどん効率化を進めるべきだと考えます。
上記に列挙したメリットの最後にある『順序立てて説明する能力が身につく』という部分は完全に『棚からぼたもち』なのですが、私が実際に経験しましたので、リストに入れさせていただきました。
人に説明するときにはある程度あいまいな部分があっても一般常識で相手が情報を補完してくれてなんとかうまくいくということがあると思いますが、プログラムを組んでいて気づくことは、人に説明をするときに伝える内容の何倍も先回りして状況を想定する必要があります。相手は一般常識などは持ち合わせていないコンピューターですので、自分が伝えた内容以外の行動をコンピューターは取ってはくれません。そのため、いろいろな可能性を考えて、いろいろな角度から先回りをしてプログラムに対する説明を考えて伝える必要が出てきます。その考えるというプロセスが順序立てて説明をする能力の向上に一役買っていると思います。
頑張って考えた説明でも言葉の選択が悪く冗長であったりするとコンピューターは処理速度低下という抵抗手段を講じてきます。そうならないために、いかに簡潔に必要な情報を伝えられるかということが重要になるのです。こういったことを考えるプロセスが順序立てて説明をする能力向上に有効だと考えます。
プログラムを勉強することでITスキルが身につくだけでなく、自分の説明力や交渉力の向上にもつながればなんだか得をした気分になりますね。
Javascript vs Google Apps Script
この記事の冒頭でGoogle Apps ScriptはJavascriptをベースにGoogleによって開発された言語だという話をしましたが、そもそもJavascriptとGoogle Apps Scriptは何が違うのかということ話をしたいと思います。下図をご覧ください。
JavascriptとGoogle Apps Scriptは似たような言語ではありますが、上記の図のようにプログラムが動作する場所が根本的に異なります。
Javascriptとは、いわゆるクライアントサイド言語と呼ばれるプログラム言語になりまして、プログラムが起動する場所は使用している端末(パソコンやタブレット、スマホ等)のブラウザ上で動作します。そのため、プログラムを起動するためには端末の電源が入っている状態でなお且つプログラムが書かれているWebページ等にアクセスしている必要があります。クライアントサイドの有名な言語はHTMLやCSSなどがJavascriptのほかに挙げられます。
一方で、Google Apps Scriptはサーバーサイド言語と呼ばれるプログラム言語の一種で、Googleのサーバー上で動作します。そのため、端末の電源を入れていない状態でも自動的にプログラムを起動させて処理を行わせることができますし、データベースの情報を取得してクライアント側に渡してクライアントのブラウザ上に表示させたりすることができます。サーバーサイドの有名な言語はPHPやRuby、Pythonなどの言語が挙げられます。
このように2つの言語は似たような文法や構造で書かれてはおりますが根本的な働きは異なる言語ということになります。サーバーサイドとクライアントサイドの違いについてはこちらのサイトにわかりやすく解説してありますので、今の説明で分からなかったという場合はご確認ください。
Googleのサーバーは24時間365日稼働しておりますので、指定時間やスプレッドシートの編集時、Googleカレンダーの編集時に自動的にプログラムを起動させるといった処理をとても簡単に設定できます。そのため、今まで手作業でやっていたデータ集計処理等を寝ている間に終わらせてしまうといったことも不可能ではありません。(とても素晴らしいです!)
Google Apps Scriptを利用してプログラムの開発を行う際には場合によっては上記二つの言語を両方利用して開発を行う場面も出てきます。その時にも基本的なコードの書き方は同じなので比較的簡単に使用できるようになると思います。クライアントサイドがJavascriptでサーバーサイドがPHPやRuby等の場合は覚えることが2倍になってしまいますので考えただけでもハードルが高く感じられますよね。
Excelマクロ vs Google Apps Script
さて、本投稿でも何度か登場しましたが、ExcelマクロとGoogle Apps Scriptの比較をしてみたいと思います。学習を進めていけばどちらもだいたい同じようなことが実現可能です。
2つの大きな違いとしてはいくつかありますが、このブログでは『Google Apps Scriptって良いよね!』を伝えたいと思っていますので、Google Apps Script寄りに書かせて頂きます。
パソコンを起動しなくても自動的にプログラムの実行が可能
前項でも少しだけ触れましたが、Google Apps Scriptは実行場所がGoogleのサーバーになります。Googleのサーバーはクラウドストレージにも利用されているため、24時間365日常に稼働しています。Google WorkspaceアカウントであればService Level Agreement(SLA)と呼ばれるサービスレベル保証がありまして、この保証の内容によると、99.9%以上の稼働率を保証するもので、もし下回った場合には料金を補償してもらえるという内容が盛り込まれています。ほぼ100%に近い稼働率を誇るGoogleのサービスだからこそ安心して自動化を実装できますね。
ここから、自動化の仕組みについて説明します。
Google Apps Scriptにはトリガーと呼ばれるプログラムを起動させるタイミングを設定出来る機能があります。トリガー機能を事前にプログラムに設定することでプログラムの起動を自動化させることが可能となります。トリガーは4種類有りますので、種類に分けて簡単に説明します。
トリガー名 | トリガー内容 |
---|---|
時間トリガー | 時間指定でプログラムを起動 |
Googleスプレッドシートトリガー | スプレッドシート編集時にプログラムを起動 |
Googleフォームトリガー | フォーム送信時にプログラムを起動 |
Googleカレンダートリガー | カレンダー編集時にプログラムを起動 |
①時間トリガー
このトリガーは本当に何も操作しない状態でプログラムが自動的に起動し処理を行います。使用用途としては、毎週/毎月の集計プログラムやリマインダー通知を送信するプログラムなど、定期的に実行が必要な処理を設定することで恩恵が受けられるのではないでしょうか。手動で行うと実行忘れやミスなどが発生してしまいますが、プログラムは人がプログラムの存在を忘れたとしても忘れずに実行してくれます。
②スプレッドシートトリガー
このトリガーは、パソコンでの操作はもちろん、スマホやタブレットでスプレッドシートを操作した場合にもプログラムの起動ができます。Excelマクロの場合では、スマホやタブレットではマクロが実行できませんが、Google Apps Scriptであれば問題ありません。
③フォームトリガー
このトリガーは、フォームを送信した後に自動でお礼メールを送ったりする場合に活用される場合が多いようです。アイディア次第では、お礼メールのみならず、もっとすごい活用方法があるかもしれませんね。スマホやタブレットでももちろんプログラムは実行されます。
④カレンダートリガー
このトリガーもスマホやタブレットから操作した場合でも実行されます。予定が追加されたことの通知や変更されたことの通知など、こちらもアイディア次第で色々なことができそうですね。
高性能パソコンは必要なし
Excelマクロでは、パソコン上でプログラムが実行されますので、パソコンの性能が低い場合、処理に時間がかかってフリーズしてしまったり、警告メッセージが出て処理が止まってしまう場合があります。この場合は、高性能なパソコンを新調するか処理を軽量化する必要があります。Google Apps Scriptでは、処理を行うのはGoogleが用意したパソコン(サーバー)上になりますのでお金をかけて高性能なマシンを用意する必要はありません。
様々なデバイスで同じように動作する
Google Apps Scriptは先程から説明している通り、Googleのサーバー上で動作するタイプのサーバーサイドプログラムです。プログラムの開発や動作テスト、実行に至るまで、手動で行う場合には全てがインターネットを通してブラウザ上で完結します。そのため、ブラウザでインターネットを閲覧出来る環境が整っていればパソコン、スマホ、タブレットなどデバイスを問わず動作します。OSも特に関係なく、Windows、MacOS、Android、iOS、ChromeOSなどどのようなOSでも動作します。Excelマクロの場合は、互換性がない場合もあるため、全てが意図した通りに動作しない場合もあるようです。
まとめ
ここまで読み進めて頂いた方にはGoogle Apps Scriptの魅力が少しでも伝わったのではないでしょうか?少しでも興味を持った方は一緒にGASライフを楽しみましょう!次回以降の投稿では、Google Apps Scriptを使う上での初期設定のやり方や実際の書き方を画像やサンプルコード等を使って説明します。
コメント