Google Apps Script|GASって何?特徴や活用例についてご紹介!

こんにちは!
突然ですが、日々の業務の中でルーティン化した作業はありませんか?もしくは、Googleサービスと外部サービスを連携させてこんなことできないかな…と悩んでいることはありませんか?
それ、GASで解決できるかもしれません!
Google Apps Script(※略:GAS)とは、Googleが提供するアプリケーション開発プラットフォームで、 業務の効率化や他サービスとの連携において様々な場面で大いに活用できます。
今回は、GASの特徴、使い方、活用例についてご紹介したいと思います!
目次
GASって何?
GASとはGoogle Apps Scriptの略で、JavaScript をベースにGoogleワークスペースを自動化・拡張できるアプリケーション開発プラットフォームです。Google上のサービスと連携したり、外部APIと連携することで定型業務の効率化を行うことができます!もちろん、GAS単体で活用することも可能です。
GASを使うために必要なもの
下記の二つがあれば簡単に始めることができます!
GASは開発環境を構築する必要がないため、すぐにコードを書き始めることが可能です。
- Google アカウント
- Gmail、Google ドライブなどを利用しているアカウントがあれば、そのまま使用できます。
- Web ブラウザ
- GAS のスクリプトエディタは Web ブラウザ上で動作します。Google Chromeが推奨されていますが、それ以外にもFirefox、Safari、Microsoft Edgeなどの主要なブラウザでも利用可能です。
2種類の開発方式
GASにはスタンドアロン型とコンテナバインド型の2種類のスクリプト作成方法があります。
スタンドアロン型
Google ドライブから新規作成し、特定の GoogleドキュメントやGoogleスプレッドシートなどとは紐づきません。独立した GAS プロジェクトとして存在し、単独で動作しているスクリプトです。他サービスとの連携も可能ですが、そのサービスの ID や URL を指定する必要があります。
複数のプロジェクトで共通の関数を再利用するためのライブラリとして作成するのに適しています。
また、Webページを作成するのにも適しています。Webページ作成については後ほど詳しく紹介します。
コンテナバインド型
GoogleドキュメントやGoogleスプレッドシートなどと連携されたスクリプトのことで、特定のファイルから拡張機能>Apps Scriptを選択して作成します。スクリプトが紐づいているサービスのコンテキスト内で実行されるため、操作が簡単に行えます。
ウェブアプリケーションとして公開できますが、そのスクリプトが紐づいている Google サービスの権限を共有する形になります。
サービスに特化したイベントトリガー(トリガーについても後ほどご紹介します。)を利用できます。
どちらのタイプも、他の Google サービスや外部の API と連携する能力は基本的に同じですが、特定のファイルに依存しない汎用的なツールやライブラリを作成したり、ウェブアプリケーションとして独立して公開したい場合は、スタンドアロン型が適しており、特定の GoogleドキュメントやGoogleスプレッドシートの操作を自動化したり、機能を拡張したりする場合は、コンテナバインド型が適しています。
目的に合わせて適切なタイプを選択することが重要です!
GASでどんなことができるか?
Googleサービス上の作業の自動化
GASを使うと、Googleスプレッドシート、Googleドキュメント、Googleドライブ、GmailなどのGoogleサービスと連携して、様々な処理を自動化することができます。具体的には以下のような活用例があります!
活用例
- Gmailの内容を取得し、必要な情報をGoogleスプレッドシートに自動で記録。
- Googleスプレッドシートのデータを元に、定期的にGoogleドキュメントを生成。
- Googleスプレッドシートのデータを元に、Googleカレンダーに自動で予定を作成。
- 特定のフォルダにアップロードされたファイルを自動で整理・リネームする。
外部サービスとの連携
Googleの各種サービスだけでなく、外部APIと連携することで様々な外部サービスと連携させることができます。
活用例①:クラウドサービスとの連携
- Amazon Web Services、Azure、Google Cloudなどのクラウドサービスとの連携して、サーバレスなバックエンド処理の実行や、Google ドライブと外部ストレージ間のファイル自動同期を実現できます。
活用例②:コミュニケーションツールとの連携(SNS・メールやチャットサービス)
- GASを使ってX(Twitter)やFacebookページに自動で投稿したり、Google スプレッドシートにデータが追加されるたびにSlackに通知を送ったりなどもできます。
Slackの自動通知例
活用例③:エンタープライズシステムとの連携
- GAS を利用すると、 Salesforce や Zendesk といったエンタープライズシステムと連携し、データを自動的に更新したり、顧客情報やサポートに関する情報 を Google スプレッドシートに取り込んだりすることができます。
活用例④:その他ツールとの連携
- 弊社では、NotionやbacklogについてもAPIを使ってGASと連携させることで、データベースを更新したり、Google スプレッドシートに転記したりしています。
Notionのデータ更新前
Notionのデータ更新後
Webページの作成
GAS内のHTML Serviceを利用してWebページの作成・公開が可能です。先ほど説明したように、Webページ作成にはスタンドアロンスクリプト型が適しているため、Googleドライブに新規のスクリプトを作成します。
手順
- Googleドライブの新規からスクリプト(スタンドアロンスクリプト)を作成する。
- スクリプト内でHTMLファイル(.html)を追加する。
- スクリプト内でコードファイル(.gs)を追加し、doGet関数を定義する。
- 新規Webアプリとしてデプロイ。
1、新規作成スクリプト
Googleドライブの新規ボタンからその他>Google Apps Scriptを選択し、スクリプト(スタンドアロンスクリプト)を作成。
2、HTMLファイル(.html)追加
スクリプトの名前をわかりやすいものに変更。
+ボタン>HTMLを選択し、HTMLファイルを作成。
ファイル名をわかりやすいものに変更。
作成と同時にHTMLのコードも生成されるため、任意のコードに変更して追記。
3、doGet関数の定義
+ボタン>スクリプトを選択し、任意の名前に変更。
自動で生成されているコードを消し、doGet関数を定義。
4、デプロイ
右上のデプロイボタンを押し、新しいデプロイを選択。(修正後にデプロイする場合は、デプロイを管理を押してください。)
設定マーク>ウェブアプリを選択し、アクセスできるユーザーで全員を選択。
デプロイをクリック。
デプロイボタン押下後に出たURLをクリックすると、WEBページが作成されたことが確認できます。
GASのトリガー設定
GASにはトリガーを設定する機能もついており、任意のタイミングで処理の自動化をすることが可能です。
トリガーの種類は大きく分けて二つあり、
- 時間主導型トリガー
- イベント主導型トリガー
- コードで設定するトリガー
となっています。
手順
- 左サイドバー>トリガーを選択。
- 右下のトリガーを追加ボタンを押下。
- 任意の実行関数を選択。
- イベントのソース(トリガーの型)を選択。
- 時間主導型であれば時間ベースのトリガーのタイプ・時間の間隔を選択。
- イベント主導型であればイベントの種類を選択。
時間主導型トリガー
時間主導型トリガーは、設定したスケジュールに基づいて、スクリプトを定期的に実行し、時間ベースのトリガーのタイプから、分、時間、日、週、月単位で細かく設定できます。
例えば日付ベースのタイマーを選んだ場合、午前10時~午前11時など、1日のうちの1時間を設定し、毎日設定した時間内にトリガーが作動します。
より細かいトリガーを設定したい場合は、時間ベースのトリガーのタイプ>特定の日時を選び、YYYY-MM-DD HH:MMの形で設定できます。
イベント主導型トリガー
イベント主導型トリガーは、特定のGoogle ワークスペースサービスでイベントが発生した際に、スクリプトを自動的に実行します。
例えばGoogleスプレッドシートだと、シート内の変種時・変更時、Gmailだと新規メッセージの受信時などに、自動化させたい処理の内容に応じて、任意のトリガーを設定することが可能です。
コードで設定するトリガー
上記2種類のトリガーとは別に、コードでトリガーを作成することも可能です。
時間主導型トリガーで毎日決まった時間にトリガーを実行させたくても、午前10時~午前11時のようにざっくりとした時間しか指定できませんが、
コードで作成すると午前10時15分のように柔軟に時間を指定することが可能です。
※コードで書いたトリガーを実行させるためのトリガーを時間主導型トリガーを使って設定する必要があります。
定期的・計画的な処理を行いたい場合は、時間主導型トリガーが適していますが、イベントが発火しリアルタイムに処理したい場合はイベント主導型トリガーが適しています。また、より細かく時間を指定してトリガーを設定したい場合はコードで作成する必要があります。
用途に合わせてトリガーを使い分けてみてください!
注記
GASにはいくつかの制限項目があるので、注意が必要です。
実行時間制限
機能 | 無料アカウント | Google Workspace アカウント |
スクリプト ランタイム | 6 分 / 実行 | 6 分 / 実行 |
カスタム関数ランタイム | 30 秒 / 実行 | 30 秒 / 実行 |
トリガーの合計実行時間 | 90 分 / 日 | 6 時間 / 日 |
実行回数制限
機能 | 無料アカウント | Google Workspace アカウント |
カレンダーの予定の作成 | 5,000 / 日 | 1日1万人 |
連絡先の作成 | 1日1,000人 | 1日2,000人 |
グループの読み取り | 1日2,000人 | 1日1万人 |
JDBC接続 | 1日1万人 | 50,000 / 日 |
JDBC 接続の失敗 | 1日100人 | 500 / 日 |
プレゼンテーションの作成 | 250 / 日 | 1,500 / 日 |
プロパティの読み取り/書き込み | 50,000 / 日 | 500,000 / 日 |
スプレッドシートの作成 | 250 / 日 | 3,200 / 日 |
URL 取得の呼び出し | 20,000 / 日 | 1日10万人 |
まとめ
GAS では、時間主導型やイベント主導型のトリガーを設定することで、スクリプトを特定の時間やイベント発生時に自動実行できます。これにより、Google ワークスペース のサービス連携や外部APIとの連携処理などを、手動操作なしに効率的に行うことが可能です。
D2C Rでは実際にGASを使って、ルーティン化している様々な作業を自動化し業務の効率化を図っています。
より詳しく知りたい方はこちらよりお気軽にお問い合わせください。
また、データ活用による分析力の向上や業務効率化にご興味をお持ちでしたらLooker Studioに関する記事も投稿しているので、併せてご覧ください。
Looker Studioとは?主要機能・活用事例をご紹介!