LoginSignup
10
11
個人開発エンジニア応援 - 個人開発の成果や知見を共有しよう!-

【0からGASを学ぶ】ところでGASって何?

Last updated at Posted at 2023-10-14

はじめに

本シリーズでは、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 クラスを用いることで外部サービスと連携することができます。例えば、先ほど例に出した住所情報を取得したい場合は、

main.gs
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.png
さらに、GASで作成したWebアプリケーションはGoogleのサーバ(ドメインは script.google.com )上にデプロイされるため、追加でサーバを用意する必要はありません。私はこれまでGASを用いて小規模なWebアプリケーションを50本以上リリースしましたが、一切費用が発生していません。

ただし、無償ゆえの制約事項は少なからずあります。それはまた次回以降に解説していきます。

私が過去におこなった非常に簡単なWebアプリケーション構築の一例

これくらいのアプリケーションであれば30分程度でデプロイまで完了することができます。

では、試しにGASエディタを開いてみましょう

と、その前に、名称は覚えなくてもよいですが、GASにはスタンドアロン型コンテナバインド型があります。簡単に言えばGASが単独で存在するのか、Googleサービスに紐づいて存在するのかといった違いです。これにより一部使用できるメソッドの違いがありますが数える程度です。

コンテナバインド型の場合、対象のGoogleサービス(例えばスプレッドシート)を共有した場合、それに紐づくGASも相手が閲覧することができてしまいます。 そのため、GASを完全に隠したいのであれば、スタンドアロン型を採用すべきです。

スタンドアロン型

手順 イメージ
1 Googleドライブにアクセスし、左上の [+ 新規] ボタンをクリックします。 スタンドアロン型_001.png
2 [その他] の中にある [Google Apps Script] を選択します。 Qiita004.png

スタンドアロン型の場合は、GASが単独で存在するためGoogleドライブ上にGASファイルが表示されます。
Qiita004_3.png

コンテナバインド型

手順 イメージ
1 GoogleスプレッドシートやGoogleドキュメントなど、Googleサービスを開きます。例ではGoogleスプレッドシートを用います。
2 リボンにある [拡張機能] をクリックし、ドロップダウンメニュー内にある [Apps Script]をクリックします。 Qiita004_4.png

コンテナバインド型の場合、GASはあくまでもGoogleサービスに紐づいて存在するため、Googleドライブからは確認することができません。GASを編集したいときは対象のサービスを開いて、上記手順で…ってのはめんどくさいですよね。そんなときは以下にアクセスすれば、Googleアカウントに紐づくGASを全て確認できます。
https://script.google.com/home

小ネタ

  1. コンテナバインド型の対象となるのは、 GoogleスプレッドシートGoogleドキュメントGoogleスライドGoogleフォーム です。
  2. ブラウザのURL部に script.new と打ち込むだけでGASエディタを開くことができます。この場合は、Googleサービスから起動したわけではないため、スタンドアロン型となります。

GASエディタを使ってみよう

GASエディタ_001.png
本画面の詳細な説明等はまた次回以降に行いますが、まずは定番の「Hello World!」をログに出力してみましょう。コード.gsに以下のように入力して下さい。

コード.gs
function myFunction() {
  console.log('Hello World!');
}

入力し終えたら、エディタ上部メニュにある [保存] ボタンをクリックします。
コードgs.png

保存ボタンをクリックすると、隣にある [実行] ボタンが活性化されるのでクリックします。すると、処理が実行され、実行ログに無事に「Hello World!」と出力されます。
コードgs実行結果_v2.png

おわりに

お疲れ様でした。
第1回は「ところでGASって何?」ということでGASの可能性活用事例起動の仕方など、GASのコーディング方法よりも知識を重点的にお伝えしました。次回以降ではGoogleの各種サービスへのアクセス方法はもちろん、GASの制約事項といった知識も交えながらお伝えします。
記事を読んで、「良いな」や「今後に期待できる!」と感じて頂けたらいいねフォローコメントいただけると幸いです。それではまた次回をお楽しみに!

ブログでより詳しく解説しています!

以下画像をクリックしてブログにアクセス!!

10
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
11