目次
Contents
Google Apps Scriptとは
Google Apps Script(読み方:グーグル アップス スクリプト)は、Googleが提供する軽量アプリケーション開発のためのプログラミング言語及びプラットフォームです。Google Apps Scriptを使うことでGoogleのサービスを自動化することができます。JavaScriptがもとになっているスクリプト言語であるため、汎用性が高く比較的簡単です。また、開発環境はWebブラウザだけでよく、Googleアカウントを持っていれば無料ですぐに使用できるため、プログラミング初心者でも始めやすい言語です。
GAS(読み方:ガス)という略称で呼ばれるGoogle Apps Scriptは前述のとおり、Googleやその他のサービスと簡単に連携できることが最大の強みで、 GmailやGoogleマップ、GoogleドライブだけでなくSlackやTwitterとの連携も可能です。
GASでの開発方式は、他のツールとの連携を前提としないスタンドアロン型と、あらかじめ決めておいた連携するツールから作成するコンテナバインド型の2つに分けられます。他のツールやサービスとの連携、自動化を行う際はコンテナバインド型の開発方式をとったほうがより簡単に始められるうえに、コンテナバインド型でのみ利用できる機能があり、コーディングも簡単です。
今回は熊本事業所での利用例を紹介しようと思います。
再春館製薬所の社員食堂
熊本で働くメンバーのほとんどが、グループ会社である再春館製薬所か、帯山にある再春館システム熊本事業所で業務を行っています。これらの場所に勤務する再春館システムの社員は、再春館製薬所のユニークな社員食堂を利用することができます。
再春館製薬所の社食は手作りでおいしいのはもちろんのこと、栄養価も高くバランスの良い食事が提供されます。セルフでのバイキング方式であるため、各自が自分の好きな量をとることができます。これは自分が食べる量を自分で選ぶ事で、食品ロスをなくす取り組みの一つとなっています。
メニューも非常に豊富であり、毎日、昼食の時間を楽しみにしています。
デザートまで用意されているにもかかわらず、非常に安価でいただくことができるので、この社員食堂は私が入社して驚いたことの一つです。
その日のメニューを再春館製薬所のインスタグラムで公開しているようなので興味のある方は覗いてみてください。
URL:https://www.instagram.com/saishunkan_recruit/
食事数の管理業務
毎日おいしい食事を提供してくれる再春館の社員食堂は、前述の「食べる量を自分で選ぶ」以外に、食材の無駄遣いを極力しないことにも力を入れています。作りすぎなどによって残飯が出てしまわないように、毎日どれだけの人が社員食堂で食事をとるのかを事前に明らかにしているのです。熊本事業所では社員の食事予定数の把握にGASを利用することで、社内業務を効率化しています。
食数管理業務は10年以上前からあるのですが、熊本事業所のGASを利用した仕組みは、私の1つ上の先輩が実装を行い、現在は私が業務を引き継いでいます。私自身まだまだ勉強中で、ソースコードのすべてを把握しているわけではありませんが、業務の内容を大まかに紹介しようと思います。
GASを利用した食数管理業務では、スプレッドシートと連携したコンテナバインド型の開発方式で実装が行われています。スプレッドシートを用いたコンテナバインド型の開発を行う際は、連携したいスプレッドシートの拡張機能にあるApps Scriptを選択します。
すると下の画像のような画面に遷移します。
ここにソースコードを書くことで開発を行うことができます。
画像の画面は社員名のリストから遷移したものです。プルダウンから実行したい関数を選んで実行することができ、社員名のリストをもとにGoogle Formを作成します。作成した Google Formを社員に展開し、食事予定を入力してもらいます。
ここで作成されるGoogle Formは1か月間の日付を表示して、食事をしない日にチェックを付けるというもので、Google Formとスプレッドシートを連携させることで、結果を指定した別のスプレッドシートに記録します。すると下のように回答が記録されます。
しかしこのままだと少しわかりづらい上に、せっかくスプレッドシートを利用しているのに、一日に用意するべき食事の集計や、特定の社員が1か月で何度社員食堂を利用したのか等の集計が行えません。そこで再びGASの出番です。今度はこのスプレッドシートからGASの画面を開きます。こちらにはGoogle Formの回答を記録したシートをもとに、下のような表を作成する関数が作成されています。
この関数が実行されることによって、誰がいつ食事をとるのかがわかりやすくなりました。さらに、この表を厨房に提出することで1か月間の食事予定を報告し、月末に管理部へ提出することで食事代を給与から引いてもらうことができます。
しかし食事予定の回答があるたびに、GASの画面を開いて関数を実行するのは面倒です。これを自動化するGASの便利な機能が「トリガー」です。トリガーは指定した関数を指定したタイミングで自動的に実行してもらえるように設定できる機能です。
GASの画面左側にある時計のマークをクリックし、「トリガーを追加」をクリックします。すると画像のようなダイアログが表示され、トリガーを設定したい関数や、条件などを設定できます。食数管理業務では、イベントのソースに「スプレッドシートから」、イベントの種類に「フォーム送信時」を選択することで、Google Formの回答がスプレッドシートに送信されたとき、自動的にマルバツの表を更新することができるようになっています。
これでGoogle Formを公開するだけで食事予定を記録、集計することができるようになりました。さらに、予定に変更があった際、入力するGoogle Formを同様の手順で作成し連携することで、毎日正確な食数を厨房に伝えることができています。
まとめ
GASでは、スプレッドシートとの連携を簡単に行えるコンテナバインド型の開発方式とトリガーによって業務の自動化を試みることができます。簡単に始めることができるため、興味のある方はぜひ試して触ってみてはいかがでしょうか。現在運用している食数管理システムを実装した先輩社員は、まだ無駄なところが多いとおしゃっていました。今後はGASについてもっと勉強して、私の手で改善していきたいです。
記事 : システムインテグレーション部 N.O