はじめに
本シリーズでは、GASの始め方や便利な使い方、ビジネス活用まで幅広く解説します。シリーズをひと通り読んでいただければ、あなたもきっとGASマスターになれるはずです。
シリーズの対象者
- そもそもGASってなんだかわからない方
- GASを学びたいけど何から始めればいいかわからない方
- GASはわかり始めたけど、もっと活用ができないかと模索している方
- とにかくGoogleが好き! という方
GASって何
では早速始めていきましょう。【0からGASを学ぶ】シリーズの第1回は「ところでGASって何?」です。
GASとは
GASとはGoogle Apps Scriptの略語です。本シリーズでは当然のようにGASと表現しますのでついてきてください。
このサービスを端的に言うと、GoogleスプレッドシートやGoogleドキュメントといった各種サービスの自動化や、様々なWeb APIとの連携を行うことのできる、Googleが提供する統合開発ツールです。
APIとは「Application Programming Interface」の略語で、事前に定義した形式に従って「リクエスト」することで「レスポンス」を返す仕組みを指します。特にWeb APIでは、HTTP/HTTPSを用いて情報のやり取りを行います。
例えば、以下をクリックすると〒120-0034に紐づく住所情報を得られます。
https://zipcloud.ibsnet.co.jp/api/search?zipcode=1200034
たまにGASはExcelマクロと同等ですといった記事を見ることがありますが、そんなもんじゃないです。 それを一緒に感じていきましょう。
※手軽さは確かにExcelマクロと同等レベルですが。
具体的にどんなことができるのか
Googleの各種サービスとの連携
GASはGoogleが提供するだけあり、Googleの各種サービスとの相性は言うまでもありません。例えば、ExcelマクロのようなGoogleスプレッドシートの自動化、Googleドライブ内のファイル整理など、サービス単独はもちろん、複数サービスを組み合わせて業務の効率化を行うことができます。
私が過去におこなった主な活用事例
- スプレッドシートで作成した在庫台帳から在庫不足となると自動で発注メールを送信
- Googleドライブの特定フォルダにファイルがアップロードされると管理者あてにメールを送信
- Googleフォームの回答送信をトリガーに集計用のスプレッドシートに転記しリアルタイム集計
- Googleフォームの回答送信をトリガーにカレンダーにスケジュール登録。当該時間の予約枠が埋まり次第、フォームを更新
などなど。あれできないかな、これできないかなと思ったことは大抵できます。
Web APIを用いてGoogle外のサービスとの連携
GASはJavaScriptをベースに作られており、 UrlFetchApp
クラスを用いることで外部サービスと連携することができます。例えば、先ほど例に出した住所情報を取得したい場合は、
function main() {
let response = UrlFetchApp.fetch('https://zipcloud.ibsnet.co.jp/api/search?zipcode=1200034');
/**responseの中身
{
"message": null,
"results": [
{
"address1": "東京都",
"address2": "足立区",
"address3": "千住",
"kana1": "トウキョウト",
"kana2": "アダチク",
"kana3": "センジュ",
"prefcode": "13",
"zipcode": "1200034"
}
],
"status": 200
}
*/
let resJson = JSON.parse(response.getContentText());
console.log(resJson['results'][0]['address1']);
console.log(resJson['status']);
}
東京都
200
といった具合に、取得した住所情報をJSONデータとしてGASの中で扱うことができます。
API連携を行う場合は、APIの返却値(レスポンス)の形式を見極めることがポイントです。
私が過去におこなった主な活用事例
- Googleフォームの回答送信をトリガーにSlackへ回答内容を連携する。
- 特定のWebサイトのスクレイピングをして、取得した内容をスプレッドシートへ連携する。
- LINE Messaging APIと連携して、LINEチャットボットを作成する。
などなど。API連携を特にフル活用したのはLINEチャットボットでしたので、皆さんにもお試しいただけますと幸いです。以下は検証用で作成したお遊びチャットボットです。
アカウント名 | 奮闘する企業戦士 |
友だち追加用URL | https://line.me/R/ti/p/@276iwchf |
追加用QR | |
構成図 |
Webアプリケーションの構築やライブラリの構築
おそらくこれが最もえぐいです。GASに度肝を抜かれる使い方です。GASではスクリプト(.gs)とHTML(.html)の2つのファイルを作成することができ、フロントエンド部をHTMLがバックエンド部をスクリプトが担うことで、Webアプリケーションを構築することが可能です(スクリプトファイルにcssやJavaScriptを記述することもあるので詳細は次回以降)。また作成した部品群をライブラリとしてデプロイすれば別のGASファイルから利用することもできます。
さらに、GASで作成したWebアプリケーションはGoogleのサーバ(ドメインは script.google.com
)上にデプロイされるため、追加でサーバを用意する必要はありません。私はこれまでGASを用いて小規模なWebアプリケーションを50本以上リリースしましたが、一切費用が発生していません。
ただし、無償ゆえの制約事項は少なからずあります。それはまた次回以降に解説していきます。
私が過去におこなった非常に簡単なWebアプリケーション構築の一例
これくらいのアプリケーションであれば30分程度でデプロイまで完了することができます。
では、試しにGASエディタを開いてみましょう
と、その前に、名称は覚えなくてもよいですが、GASにはスタンドアロン型とコンテナバインド型があります。簡単に言えばGASが単独で存在するのか、Googleサービスに紐づいて存在するのかといった違いです。これにより一部使用できるメソッドの違いがありますが数える程度です。
コンテナバインド型の場合、対象のGoogleサービス(例えばスプレッドシート)を共有した場合、それに紐づくGASも相手が閲覧することができてしまいます。 そのため、GASを完全に隠したいのであれば、スタンドアロン型を採用すべきです。
スタンドアロン型
№ | 手順 | イメージ |
---|---|---|
1 | Googleドライブにアクセスし、左上の [+ 新規] ボタンをクリックします。 | |
2 | [その他] の中にある [Google Apps Script] を選択します。 |
コンテナバインド型
№ | 手順 | イメージ |
---|---|---|
1 | GoogleスプレッドシートやGoogleドキュメントなど、Googleサービスを開きます。例ではGoogleスプレッドシートを用います。 | |
2 | リボンにある [拡張機能] をクリックし、ドロップダウンメニュー内にある [Apps Script]をクリックします。 |
コンテナバインド型の場合、GASはあくまでもGoogleサービスに紐づいて存在するため、Googleドライブからは確認することができません。GASを編集したいときは対象のサービスを開いて、上記手順で…ってのはめんどくさいですよね。そんなときは以下にアクセスすれば、Googleアカウントに紐づくGASを全て確認できます。
https://script.google.com/home
小ネタ
- コンテナバインド型の対象となるのは、
Googleスプレッドシート
、Googleドキュメント
、Googleスライド
、Googleフォーム
です。 - ブラウザのURL部に
script.new
と打ち込むだけでGASエディタを開くことができます。この場合は、Googleサービスから起動したわけではないため、スタンドアロン型となります。
GASエディタを使ってみよう
本画面の詳細な説明等はまた次回以降に行いますが、まずは定番の「Hello World!」をログに出力してみましょう。コード.gsに以下のように入力して下さい。
function myFunction() {
console.log('Hello World!');
}
入力し終えたら、エディタ上部メニュにある [保存] ボタンをクリックします。
保存ボタンをクリックすると、隣にある [実行] ボタンが活性化されるのでクリックします。すると、処理が実行され、実行ログに無事に「Hello World!」と出力されます。
おわりに
お疲れ様でした。
第1回は「ところでGASって何?」ということでGASの可能性や活用事例、起動の仕方など、GASのコーディング方法よりも知識を重点的にお伝えしました。次回以降ではGoogleの各種サービスへのアクセス方法はもちろん、GASの制約事項といった知識も交えながらお伝えします。
記事を読んで、「良いな」や「今後に期待できる!」と感じて頂けたらいいねやフォロー、コメントいただけると幸いです。それではまた次回をお楽しみに!