割と役に立つプログラミング言語 Google Apps Script (GAS) の紹介


ツールキットとしてはプログラミング言語自体よりもそれによって作成された仕組みの方が有用なのでしょうが、そこはシビックテックですのでやはりプログラミングに関する投稿も必要かと思い、今回はプログラミング言語の紹介から入ります。



# Google Apps Script (GAS)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/300876/e94c7064-9809-3e59-4c31-63e193dcda8a.png)

- [Apps Script – Google Apps Script](https://www.google.co.jp/script/start/)
- [Apps Script  \|  Google Developers](https://developers.google.com/apps-script/)
    - 開発者向け
    

_Googleらしいというか、公式サイト自体は未だに日本語化されていないようです_


## Google Apps Script (GAS) 基礎知識

Google Apps Script とはいわゆるプログラミング言語です、プログラミング言語としては比較的簡単な部類になります。また、有名なJavaScriptという言語(*1)と非常に似ている為、覚える価値は非常に高いと思います。さらに大きな利点として Google Apps Script を利用したプログラムを作成すれば、Webサーバー等を別途用意しなくてもインターネット上に簡単なサービスを公開することが出来ます。


Google Apps Script は良く GAS と表記されます、そして日本語での会話時には「ガス」と発声してOK。IT系の会話の中で「ガス」と聞こえてきたらほぼ Google Apps Script のことを指しているとおもって間違いありません。本投稿では Google Apps Script のことを以後 GAS と表記します。短くて良いですね。

*1) 厳密には色々あるのですが今回は分かりやすさ重視でJavaScriptと表現しました






## GASとVBA

VBAという言葉を見聞きしたことがある方は多いかもしれません。正式名称は Visual Basic for Applications です、気を付けたい点として Visual Basic というプログラミング言語とは異なりますのでご注意下さい。VBAとVBは別物です。

> マイクロソフトが1990年代に開発していた汎用プログラミング言語・Microsoft Visual Basicを、同社製品のMicrosoft Officeに搭載したものがVBAである。VBA を使用することで、Excel、Access、Word、Outlook、PowerPointなど、Officeのアプリケーション・ソフトウェアの機能をカスタマイズしたり、拡張できる。

[Visual Basic for Applications \- Wikipedia](https://ja.wikipedia.org/wiki/Visual_Basic_for_Applications)

仕事、プライベート問わず、Microsoft Excel等を利用している方は多いでしょうが、たまに「Excelマクロ」という表現を聞いたことがある方も多いでしょう。そして「Excelマクロ」の実体はほぼ全て、VBAで作成されたプログラムであると考えて良いです。つまり、Excelで関数などでは無く、もう少し高度な処理を行うようなプログラムはVBAで記述されている訳です。なるほど、Excelのアレが作れるのは便利だなと思って頂けるのでは無いでしょうか。


## GAS 関連動画

Googleが公開しているGAS関連動画をいくつかピックアップしておきます


<blockquote class="twitter-tweet" data-lang="en"><p lang="en" dir="ltr">What is Google Apps Script? - YouTube<a href="https://t.co/BAihXvSC9J">https://t.co/BAihXvSC9J</a></p>&mdash; MSN-*88 (@MSN088) <a href="https://twitter.com/MSN088/status/1071324044132151296?ref_src=twsrc%5Etfw">December 8, 2018</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

2013年の動画ですが、なにが出来るのかが分かりやすいと思います。日本語への自動翻訳字幕でも利用可能です。 [自動字幕起こし機能を使用する \- YouTube ヘルプ](https://support.google.com/youtube/answer/6373554?hl=ja)

- 2010年
    - [Google Apps デモ Google Apps Script編　 \(Google Enterprise デモシリーズ\) \- YouTube](https://www.youtube.com/watch?v=U77F8YMXqQ4)
        - GASやVBAを全く知らない方は驚きの内容かもしれません
- 2014年
    - [\[JP 日本語\] Introduction of Google Apps Script best use case by Atusi Nakamura \- YouTube](https://www.youtube.com/watch?v=Rj9ezNIY7T8&t=262s)
    - [\[JP 日本語\] Introduction of Google Apps Script Community by Keisuke Oohashi \- YouTube](https://www.youtube.com/watch?v=JlNfpGKy-3g)
        - 会話が中心ですがそういう動画が好きな方向け
- 2017年
    - [G Suite でさらなる業務の効率化を！ 〜 Google Apps Script と App Maker の活用事例、ISV ソリューションをご紹介〜 \- YouTube](https://www.youtube.com/watch?v=f1LNHOv4hZQ)
    - [Google Apps Script 利用で実現する働き方改革 \- YouTube](https://www.youtube.com/watch?v=-VdRc1oe2co)
        - 企業向けプログラム、業務改善の観点ではありますがGASの適用例としては面白いかもしれません


# GASを使ってみる価値はあるか? 覚える価値はあるか?

プログラミング言語に限らず新しいことに挑戦する際には、まず以下のような点について考慮することが多いと思います。(*2)

- 学習コスト (学ぶための時間的コスト、金銭的コスト)
- 使えるか? (それを使ってなにが出来るのか)
- 長く使えるか? (その知識や経験がいつまで有効か?)

*2) 知的興味がとても強い人にとってはこれは問題になりません



## GASの学習コスト

GAS自体はさほど難しいプログラミング言語ではありません。公式サイトは英語ですが、日本語の紹介記事やブログなども多く存在します。また日本語の書籍なども多く販売されており、学習に必要な情報は多くある方だと思います。


- Qiita
    - [GoogleAppsScript 1383 posts \- Qiita](https://qiita.com/tags/googleappsscript)
    - [gas 554 posts \- Qiita](https://qiita.com/tags/gas)
- Amazon
    - [Amazon\.co\.jp: google apps script](https://www.amazon.co.jp/s/?field-keywords=google+apps+script)
- Blogなど
    - [【保存版】初心者向け実務で使えるGoogle Apps Script完全マニュアル](https://tonari-it.com/google-apps-script-manual/)
        - VBAのようにお仕事などでの活用を念頭に置く場合はこのブログのような記事がお薦めです

## 注意点(重要)

これからGASを学ぼうとされる方、一つ重要な注意点があります。

これは決してGASに限った話では無いのですが、ICT、プログラミング言語の進化は日進月歩ですので、数年前の書籍、ブログなどに書かれている内容が現在では既に利用出来ないといったことも有り得ます。

GASは比較的変更が少ないプログラミング言語ではありますが、2018年にもダッシュボードと呼ばれる画面の見た目が大幅に変更されています。つまり2017年以前に出版された書籍(やブログの記事など)の内容をそのまま現在のGAS学習に利用出来ないことを意味します。

プログラミング言語自体には変更は無くとも付随するツール等への変更が発生することもあります。

ただ、これは時代の流れですので、受け入れるべきです。

プログラミング教育の教材としてのプログラミング言語は比較的長く出来ることを想定して設計されているのですが、GASではそれなりに新しい機能が増えたりします。(とはいえ他のプログラミング言語に比べればかなり変更は少ないです)

つまりGASは学習教材ではなく、あくまで実践的なプログラミング言語として捉えるべきでしょう。このことは、決して悪いことでは無く、GASを利用することで実際に色々と役に立つツールやサービスを提供出来る可能性が高いということでもあります。

プログラミングを学ぶ際は常に可能な限り最新の情報、さらにいえば(困難ですが)原典や原著により近い情報を参考にするようにして下さい。


参考)

- 2012年 [GASの怖い話と対策となんか \- Qiita](https://qiita.com/soundTricker/items/21d3a39222fb1edbce57)
- 2018年 [【GAS】大幅にアップデート！Dashboard、Google Apps Script API、claspはGAS開発を根本から変えてしまうかも！？ – Webird Programming\.Tech](https://webird-programming.tech/archives/382)


## GASは使えるのか?

使おうと思えば使いどころは多いです。例えばGoogle sheets(某Excelみたいなやつですね)に入力されたデータを自動的に処理したり、Google formsへの回答から自動的に他のタスク管理ツールのタスクを作成したり、WebAPIを用意したり、簡単なことから高度なことまで色々出来ます。

ただ、プログラミング言語、プログラミング全般に言えることですがどのプログラミング言語も基本的には1つの選択肢です。GASが最高というわけでは有りません。用途、目的によっては他のプログラミング言語、もしくはプログラミングすら行わないほうが良い場合もあります。

その上でGASは比較的簡単に扱えるプログラミング言語ですし、その割には色々と出来るのでお薦め出来るものであると思います。



## GASは長く使えるのか?

VBAもそうですが、この手の(エンタープライズ向けにある程度の需要が存在する)言語の息は長いので、今後もかなり長く利用出来るのでは無いかと思います。



# まとめ

今回はまずGASの紹介でした。次回(があれば)はもう少し踏み込んだ内容としたいと思います。