アメリエフの技術ブログ

Amelieff Staff Blog

misawatの「適度にGASを使う」①

みなさんこんにちは。
CTOとは仮の姿、実体は社内インフラエンジニアのmisawatさんです。

皆さんの施設では、経費の管理とか、採用の管理とか、教育の管理とかどうしてますか?
エンジニアオンリーの施設であれば、ガシガシコーディングして、自動化!自動化ぁ!!自動化ァァァ!!!という方向に持って行きたくなりますが、
実際に各種管理ファイルを扱うのは事務系の方だったりします。
その場合、何かエラーが起きたら都度技術側で対処しなくてはいけなくなり、言わば社内サポート窓口の開設が必要になってしまいます。

楽するために自動化するのに、手間が増えたら本末転倒ですね。

何が言いたいかというと、部門横断的に扱うファイルは、誰もが扱えるものであることが望ましいということです。
一昔前はExcelを使ってる企業が多かったですが、基本ローカル管理で不便なので、セキュリティ面から考えてもクラウド化の流れになってますね。

誰もが扱えるツール + コーディング!

そこで、弊社では一部の管理ファイルはGoogleSpreadSheetを使っています。
(タスク管理やコード管理といったエンジニアオンリーの場合は、それぞれTrelloやGitHubのような今風の外部ツールを使ってますよ!)

GoogleSpreadSheet、無料で使えるツールとは思えないほどの高機能ですが、結局の所、ただの表計算ソフトであることに変わりはないため、
柔軟な処理をさせようとすると、多少のコーディングが必要になります。

Excelでは「マクロ」と呼ばれているやつですね。
GoogleSpreadSheetでは、よりプログラムよりのツールが提供されており、その名を「Google Apps Script(GAS)」といいます。

GASの特徴

GASですが、JavaScriptをベースに開発された言語です。
というかもはやJavaScriptです。

特徴としては、

  • スクリプト単体(スタンドアロンスクリプト)の他に、GoogleSpreadSheet等への紐付け(コンテナバインドスクリプト)を行う事ができる。f:id:miwa-t:20190816140817p:plain

  • GoogleSpreadSheet側で用意されてる関数(SUM()とか)との組み合わせることが出来る。( getFormulas 関数とかあるので)

  • 開発環境(というかスクリプトエディタ)が用意されてる。f:id:miwa-t:20190816140648p:plain

  • APIの公開が簡単f:id:miwa-t:20190816141030p:plain

パッと思いつくのはこの辺ですかね。


一つ注意しないといけないのは🚨
ベースにしているJavaScriptのバージョンが古いので、
JavaScriptでは出来るのにGASでは出来ない!ってのが頻発するのと、
一番困るのが、実行時間の上限が30分(昔は6分だったらしい)ってことですね。

前者はアルゴリズムの見直しでどうにもなるけど、
後者は、どうにもならない。
プログラムに息継ぎのコードを入れるという不毛なことをせざるを得ない。・・・と思ってる。

コメント、☆、チャンネル登録もよろしくね

次回以降、コードも交えて、少し社内管理よりのGASの活用例を紹介していこうかな!(気が向いたら)
f:id:Fuku-I:20190823143955p:plain