GAS(Google Apps Script)を活用して業務を効率化しよう!GASのメリットや活用例を紹介
Googleが提供するGAS(Google Apps Script)は、さまざまな業務を自動化することのできるプラットフォームです。
書類の作成やスプレッドシートの編集、スケジュールの管理など、めんどうな作業を自動で処理することで、業務効率を向上させることができます。
この記事では、GAS(Google Apps Script)がどのようなものなのか、導入することによるメリットとデメリット、さらには、実際の活用事例を解説していきます。
事務作業からマーケティングまで、さまざまなシーンで活躍するGASを使って、仕事を効率化していきましょう。
GAS(Google Apps Script)とは
まずは、GASがどのようなものなのかを、かんたんに説明します。
Googleが提供するプログラミング言語
GAS(Google Apps Script)は、Googleが2009年から提供しているプログラミング言語およびプラットフォームです。
このシステムはJavaScriptによって開発されており、ブラウザ上で動作します。
JavaScriptは、おもにWebアプリケーションの開発で採用される言語で、シンプルな文法と汎用性の高さで知られています。
そのため、さまざまなシーンで活用でき、用意するのもGoogle ChromeとGoogleアカウントだけで、開発環境の構築が必要なく、かんたんに扱えるのが特徴です。
また、通常のJavascriptは、WEBサイトの動的な仕組みを作るために利用されるため、フロントエンドエンジニアが良く利用する言語ですが、このGASに関しては、サーバーで動くようなイメージになります。
マクロのように仕組み化が可能
このGASを簡単に説明するなら
「グーグルが提供するマクロのようなもの」
となります。
マクロは、エクセルの作業を自動化するためのプログラムで、マイクロソフトが提供しています。
これを、グーグルスプレッドシートで行うためのプログラミングと考えると、理解しやすい人も多いのではないでしょうか。
そのため、マクロで出来るような内容は、大体GASでも出来るイメージになります。
(一部、ローカルPCで出来ることと、ブラウザで出来ることの違いはありますが、難しい話になるので割愛します)
Googleのさまざまなサービスと連携できる
GASは、Googleのさまざまなサービス(Google Apps)と連携して、動作を自動化することを目的としたサービスです。
GASを使うことで、GmailやGoogleスプレッドシートなどでの作業を自動化して、業務効率を向上させることができるのです。
また、Googleが提供するサービス以外の、いくつかの外部サービスとの連携も可能と、扱える幅がとても広いのが、GASの特徴です。
これらの機能を連携するのは、通常のプログラミングでは、非常に多くのソースコードが必要となりますが、GASでは数行で書けるようなものも多く、非常に便利なツールとなっています。
GASのメリット
GASを利用することには、どのようなメリットがあるでしょうか。
GASの特徴は、なんといっても、低コストの運用で、業務の効率化にかんたんにつなげることができることです。
無料で利用できる
さまざまな定額サービスの開発ツールがあるなかで、GASは無料で利用することができます。
GASの利用に必要なのは、ブラウザのGoogle ChromeとGoogleアカウントのみで、どちらも無料で入手・作成することができます。
そのため、手軽に導入でき、開発コストを圧迫することもありません。
ただし、グーグルの法人用アカウントは有料です。
※GASに限った話をすれば、有料の法人用アカウントでも無料の個人用アカウントでも、出来ることに差はありません。
環境構築の必要がない
GASはWebアプリケーションの実行という形で、ブラウザ上で動作するため、開発環境の用意が必要ありません。
開発環境の構築は、開発を始めるうえで大きなコストとなりますが、GASであれば、その心配をせずに利用を開始することができるのです。
さまざまなシステムと連携して業務を効率化できる
通常、システムを開発しても、別のシステムと連携するのには、そのための作業が必要になります。
しかし、GASではその必要がなく、開発したものはそのまま、Googleが提供するさまざまなシステム、GmailやGoogleスプレッドシート、Googleフォームなどと連携することができます。
さらに、いくつかの外部サービスにおいても、そのサービスが提供するAppを導入することで、GASとの連携が可能です。
GASと連携できる代表的な外部サービスとして、SlackやChatwork、Twitter、Trello、Notionなどがあります。
Googleが提供するサービスだけでなく、こうしたビジネス上で頻繁にしようされるサービスを自動化することで、業務効率を大幅に向上させることができるのです。
トリガー起動が可能
GASでは、トリガー起動ができます。
トリガー起動とは、特定の条件を元に自動的にプログラムを実行する方法で、
「毎日14時に実行」
「毎月1日の2時に実行」
「スプレッドシートが変更された時に実行」
など、非常に汎用的な仕組みを作ることが可能です。
特に時間起動のトリガーは、非常に効率的に仕組み化が可能です。
(例えば、業務時間外に自動的に作業をしてくれるなど)
GASのデメリット
その低コストな特徴の反面、GASには、いくつかのデメリットが存在します。
処理時間などに制限がある
無料で利用できるGASですが、使っていく中でさまざまな制限にぶつかることになります。
代表的な制限として、6分を超える処理ができないというものがあります。
制限時間を超えると、GASが強制終了してしまうため、処理時間が6分を超えないようにコードを書いていく必要があります。
これは、グーグル側のサーバーを圧迫しないような作りですが、開発の仕方によっては、この6分は非常に大きな制約となります。
例えば、数百行のスプレッドシートのデータを読み込む際、1行ずつ取得して処理する方法と、
const values = sheet.getRange("B1:E1000").getValues();
のように、範囲を指定して取得し、プログラム内で処理を回す方法の2つがあります。
(上記のコードなら、B列からE列まで、1行目から1000行目を取得します。)
この2種類の書き方では、実行時間に大きな差が生まれます。
前者は、スプレッドシートのデータの取得を1000回行うのに対して、後者は取得自体は1回です。
このデータの取得には、0コンマ数秒といった時間が必要になるため、数千回・数万回と処理をすると、明らかに時間が遅くなります。
上記の例のように、作り手の書き方によって大きく実行時間が変化するため、作り手の技術力も求められるのです。
他にも、トリガー回数やGmailのスレッド取得回数にも制限(1日あたりのリクエスト数など)があるため、注意が必要です。
ちなみに、GASには有料プランとして「G suite」と「Early Access」があり、処理時間が30分まで開放されるなどのサービスを受けられますが、制限自体が無くなるわけではありません。
特に注意が必要なのは、トリガーです。
アカウントの種類を問わず、1スクリプト(1プログラム)につき、20個までの設定となります。
「毎日14時から実行」
「毎日15時半から実行」
などのように、細かく設定する場合は、トリガーを大量に使うことになります。
(1時間おき・・・などのような設定ならトリガー1つで設定可能)
そのため、事前に制限を確認した上で、適切な開発とトリガー設定をする必要があるでしょう。
開発コストがかかる場合も
GASは、開発経験者であればとてもかんたんに扱えるサービスですが、社内にそのような人員がいない場合、1から学習してGASを利用するか、外部業者に開発を委託することになります。
GASは学習コストの低いことが特徴ですが、そうした余裕がないのであれば、ベンダーに頼らざるを得ません。
大規模なシステムを設計する、あるいは、広い範囲の業務にGASを導入しようとするケースでは、その傾向が高まります。
当然、料金が発生するため、開発コストがかかってしまいます。
Microsoftのサービスと連携ができない
GASはSlackやChatworkなど、いくつかの外部サービスとの連携が可能ですが、Microsoftが提供するサービスとの連携はできません。
GASを使って業務効率をあげるのであれば、普段からの業務でGoogleのサービスを利用していることが前提となります。
ただし、グーグルは年々マイクロソフトオフィス製品との互換性を高めています。
例えば、数年前はエクセルを正しくスプレッドシートに変換できなかったのですが、最近はマクロも解析して取り込むことが出来る様になっています。
そのため、今後もグーグルがマイクロソフトとの互換性を高めていけば、連携が可能になるかもしれません。
そのほかの制限
GASには、処理時間の制限があります。
無料版で6分、有料プランで30分となっています。
それ以外にもいくつか制限があり、コードを書くときは、これらの制限を回避する必要があります。
まず、GASではカスタム関数の作成・使用が可能ですが、このカスタム関数の1回当たりの実行時間は30秒以内という制限があります。
次に、処理の自動化のために多用されるトリガー設定ですが、トリガーの処理時間は1日90分まで、1スクリプトで実行できるトリガー数は前述の通り20までです。
また、GASはさまざまなアプリケーションと連携させることで活用していきますが、連携側に動作制限(時間当たりの読み込み回数など)がある場合、処理が停止してしまうことに注意しましょう。
GASでできる業務の効率化
ここからは、GASでできる業務の効率化について、具体的な実例をいくつか紹介します。
多くのメソッドについては、インターネット上にソースコードが公開されていたり、解説動画などの資料が豊富であったりと、開発コストは意外と低いので、普段の業務を圧迫せずに、これらの活用例を実践することができます。
Googleスプレッドシートとの連携
入力に時間がかかるうえにミスが発生しやすいスプレッドシートの編集ですが、GASを使うことで自動化することができます。
GASで作成したスクリプトとスプレッドシートを連携させて、データを与えれば、自動でセルに入力させることができます。
人力でスプレッドシートにデータを入力するよりも格段にはやく、ミスも起こらないため、業務効率を大きく向上させることが可能です。
Gmailの一斉送信システム
同じ文面のメールを複数の相手に送りたいとき、ひとつひとつ作成して送信していては手間がかかります。
そこで、GASと連携することで、メールの一斉送信が可能になります。
単純に同じ文面を送信するだけでなく、本文中の一部分(名前や番号など)を自動入力することも可能です。
例えば、あるキャンペーンをおこなって、応募者の名前と応募番号をスプレッドシートに記録したとき、そうした情報を記載して、それ以外が同じ文面のメールを自動で作成して一斉送信するといったことに利用できます。
Googleフォームへの自動返信
Googleフォームに送られた問い合わせに、自動で返信するシステムも、GASで作成することができます。
返信内容はあらかじめ作成しておき、問い合わせ内容によって適切なものを送信するといったことも可能です。
返信業務を軽減すると同時に、問い合わせに気づかないといったことも減らせます。
スプレッドシートで作成した書類を自動でPDFにして保存
GASを使うことで、スプレッドシートの情報をもとに、PDFを自動で作成することが可能です。
請求書や発注書、納品書など、スプレッドシートに格納しておくことの多い書類から、PDFを作成して、Googleドライブに自動で保存することができます。
自動作成するPDFの書式やレイアウトもカスタマイズ可能です。
請求書などの書類作成は、業務の中でも負担となりやすい作業なので、GASで自動化することは、大きなメリットとなるでしょう。
Googleカレンダーとの連携
スプレッドシートとGoogleカレンダーを連携させて、スケジュール管理をおこなうことができます。
スプレッドシートで作成した予定表から、カレンダーに自動でスケジュールを登録することで、スケジュールの記載漏れがなくなり、管理にかかるコストを削減できます。
Googleアナリティクスとの連携
マーケティングの分野でよくおこなわれている活用例として、Googleアナリティクスとの連携があります。
アナリティクスから取得したデータをスプレッドシートに記録して、作成したツールを使用して自動更新することで、進捗や成果などを簡単に確認することが可能になります。
WEBフォームからの入力から、基幹システムとの連携
GAS単体での連携だけではなく、他のシステムとの連携を行うことで、より効率的な開発が可能になります。
例えば、WEBフォームとしてアンケートフォームをグーグルフォームで作ったとします。
このデータは、既存の仕組みでスプレッドシートに転機する機能があります。
すると、ユーザーがアンケートに答える度にスプレッドシートにその情報が追記されていきます。
このスプレッドシートの情報を定期的に、
「グーグルドライブにCSVファイルとして出力する」
というプログラムをGASで作ります。
その際、出力済みのデータは別シートに履歴として移動させます。
次に、基幹システムからグーグルドライブをアクセスするプログラムを作ります。
グーグルドライブなどは、APIが公開されており、PHPやVB.netなどのプログラムから利用することができます。
保管されたCSVファイルを、基幹システムにデータ更新をするプログラムを作れば、
「WEBフォームから入力された情報を、基幹システムに反映させる」
という作業が自動化できます。
社内の仕組み化はAMELAに
今回は、GASについて見てきました。
GASは、グーグル製品を使っている人からすると、非常に便利なツールです。
特にトリガー機能などは、エクセルのマクロで実現しようと思うと非常に大変なので、是非自動化に利用したいものです。
一方で、本文中にも書きましたが、様々な制限がある中で開発をするのは、高い技術力や設計力が必要になります。
AMELAでは、こういった仕組み化において非常に広い知見を持っています。
また、専任のITコンサルタントもおりますので、単に開発するだけではなく、
「既存製品を活用して低コストで仕上げる」
「運用を考慮した開発を行う」
「導入をスムーズに行う仕組みづくり」
も得意としております。
是非、社内問題を一緒にITで解決してみませんか?