Google Apps Script(GAS)とは?初心者が知っておきたい活用法・実際の書き方・学習法を紹介

eyecatch_1200

Google Apps Script(以下、GAS)とはGoogleのサービスを連携・自動化させるためのスクリプト言語です。

実際に、本記事をご覧いただいているみなさまは「GoogleスプレッドシートやGmailなどで行っているルーチンワークを自動化したい」と考えているのではないでしょうか?

一方で、プログラミングが初めてなので何から手を付ければよいかわからない、Google公式の開発者向けサイトも英語表示でわからない、という方も多いと思います。

本記事では、Googleサービスの作業を自動化したい方向けに、初心者がまず理解しておくべきGASの使い方・サンプルスクリプト・学習法を紹介します。

【少額・スポット可】ネット広告運用の2次代行サービス『AG-Boost』


GASとは

GASはGoogle Apps Scriptの略称で、Google が提供しているプログラミング言語で、JavaScriptがベースとなっています。

JavaScriptはウェブ開発を中心に幅広く利用されているため、様々なサービスと連携することが可能です。

GASのスクリプト作成画面


GASの特徴・メリット

GASの特徴は以下の通りです。

  • Googleサービスとの連携・自動化が容易
  • 無料で使える
  • 開発環境が不要

Googleサービスとの連携・自動化が容易

Googleの各種サービスとの連携が容易なことが一番の特徴です。

広くビジネスで使われている下記のサービスを操作することで、さまざまな業務を自動化することができます。

<連携可能サービス例>

  • Gmail
  • Googleカレンダー
  • Googleドキュメント
  • Googleスプレッドシート
  • Googleドライブ
  • Googleマップ

無料で使える

GASは、Googleアカウントがあればだれでも無料で使えます

有料のGoogle Workspace(旧G Suite)アカウントだと、スクリプトの実行時間が増えるなどのメリットはありますが、簡易的な利用であれば無料アカウントでも問題ないでしょう。

開発環境が不要

他のプログラミング言語との比較では、開発環境が不要なことも大きな特徴です。

Pythonなどは、初心者の場合開発環境の構築に数時間かかることもあります。

初心者でも簡単にすぐに始めることができるので、Googleサービスを利用しているのであればGASからプログラミングを始めてみるのも良いでしょう。


GASでできること・できないこと

できることできないこと
Googleサービスとの連携ローカルファイルとの連携(Excelなど)
Google以外のwebサービスとの連携
Webサイトからの情報収集
Webアプリケーションの開発

GASでできること

GASでできることは、大きく以下の4点が挙げられます。

  • Googleサービスとの連携
  • Google以外のwebサービスとの連携
  • Webサイトからの情報収集
  • Webアプリケーションの開発

業務での実際の活用例については、こちらの記事を参考にしてください。
参考:【サンプルコードあり】Google Apps Script(GAS)の業務活用例5選

Googleサービスとの連携

Gmailやスプレッドシートなどの、ほとんどのGoogleサービスと連携が可能です。

例えばスプレッドシートであれば、ExcelのVBAのように、マクロを作成して色々な動作を自動で繰り返し実行させることができます。

またGmailであれば、決まった時間に毎日メールを送る、特定の件名のメールを自動で転送する、などの使い方が考えられます。

他にも、各Googleサービスを組み合わせた活用方法もあります。

例えばGoogleフォームに入力されたらGmailで自動返信する、スプレッドシートの内容が更新されたらGmailで通知する、など様々な活用の仕方が考えられます。

Google以外のwebサービスとの連携

Google以外のサービスとも連携可能で、メジャーなツールであれば検索すれば連携方法を解説した記事が多く出てくるでしょう。

例えばChatworkと連携し「Googleカレンダーの情報をChatworkに通知する」のような使い方ができます。

上級者向けですが、APIを公開しているサービスと連携させることもできるため、例えば「freeeにある売上データをGoogleスプレッドシート上に転記する」のような使い方もできます。

Webサイトからの情報収集

Webサイトから任意の情報を抽出、整形、解析する技術のことをスクレイピングといいますが、このスクレイピングも可能です。

小規模のデータを収集する場合や、定期的に実行する必要がある場合はGASを使ってスクレイピングすると良いでしょう。

またGASに標準であるIMPORTXML関数を使用すると、複雑なコードが必要なく簡単にスクレイピング可能です。

Webアプリケーションの開発

簡易的なWebアプリケーションであれば、GASで開発し公開まで可能です。

特にGASの特徴である、Googleサービスと絡めたアプリケーションを開発したい場合に適しています。

機能面では他のプログラミング言語には劣るので、社内で活用したいツールがある場合にGASで開発すると良いでしょう。

GASでできないこと

Webサービス間の連携に強い一方で、ローカルファイルに対しての処理はほとんどできません

特にMicrosoft製品に対して処理を加えることができないため、「Excel加工を自動化したい」などのケースでは、別方法を考えた方が良いです。


GASを書くための下準備

Apps Scriptを開く

Googleドライブを開き、「新規」→「その他」→「Google Apps Script」の順にクリックします。

002

「Google Apps Script」が出てこない場合は、「アプリの追加」をクリックします。

「Google Apps Script」と検索し、手順に沿ってインストールします。

003

インストールが出来たらGoogleドライブを開き、「新規」→「その他」→「Google Apps Script」の順にクリックします。

このようなスクリプトエディタ画面が開けたら準備完了です。

004

スクリプトエディタの説明

ここで、スクリプトエディタでよく触る箇所の説明をします。

※名称は公式なものがないため、筆者が付けたものです。

005

  1. プロジェクト名

    デフォルトでは「無題のプロジェクト」となっていますが、クリックすると変更可能です。作成するプログラムの概要がわかるような名前に変更しましょう。

  2. サイドバー

    プロジェクトの情報、実行履歴など確認ができます。時計マークのボタンをクリックすると、スクリプトの時間指定ができます。おもにスクリプトが完成した後に確認することになります。

  3. エディットバー

    「戻る」「進む」「保存」などのファイル編集によくある機能や、スクリプトの実行ボタンなど、スクリプト作成時によく使う箇所です。

  4. スクリプトエディタ

    実際にコードを書く場所になります。


GASのコードについて

コードの構造

実際のサンプルスクリプトを用いながら、コードの構造説明をします。

プログラミングの一歩目によく用いられる「Hello world」とログを出すスクリプトを用います。

まずはスクリプトエディタにこちらの、コードをコピペしてください。

function ハローワールド() {
var value = "Hello World";
Logger.log(value);
}

006

続いて、「プロジェクトを保存」ボタンを押し、実行ボタンを押してください。

すると以下のように実行ログが出てきて、その中に「Hello world」というログを残すことができます。

これで、一つのスクリプトをかけたことになります!

007

さて、スクリプトの説明です。

コードは必ず以下の構造となります。

関数名は任意のものでよく、今回は「ハローワールド」と名付けました。

コードの中身については、やりたいことによって変わってきますが、ひとつのプログラムがこちらの構造で成り立っている、ということを理解ください。

承認を求められたとき

スクリプトを実行するとき、初回に承認を求められることがあります。

ダイアログが出た場合には、以下の手順にて承認を進めてください。

1. 権限を確認をクリック

2. 自分のアカウントを選択

3. アクセスを許可する

サンプルコード:Googleスプレッドシートのセル内容をGmailで送信する

サンプルとして、メール送信を自動化する一例を紹介します。

あらかじめ準備したスプレッドシートの内容からGmailを自動送付するというスクリプトで、まずはこちらの図の配置でスプレッドシートを準備してみてください。

D列の送付アドレスには、テストメールを送ってもよいご自身のアドレスを入れることをお勧めします。

次にスクリプトエディタで、以下のコードを入力してください。

function mailsend() {
var ss = SpreadsheetApp.openById('△△△'); // SHEET_IDにご自身のスプレッドシートIDを入力(https://docs.google.com/spreadsheets/d/△△△/)
var sh = ss.getSheetByName('シート1');
var last_row = sh.getDataRange().getLastRow();
var arr = sh.getRange(1,1,last_row,4).getValues();

//ループ処理
for(var i=2;i<=last_row;i++){
var sendstatus = arr[i-1][0];
 if(sendstatus !== "送信済"){
var title = arr[i-1][1];
var text = arr[i-1][2];
var mail = arr[i-1][3];
MailApp.sendEmail(mail,title,text);
sh.getRange(i,1).setValue("送信済")
}
}
}

008

ここでひとつ注意事項です。

3行目の’△△△’と記載している箇所には、先ほどのスプレッドシートのIDを入力してください。

このスクリプトを保存し、実行してください。
実行時に承認が求められる場合は、承認し進めてください。

すると、スクリプトエディタ上では実行開始・完了の通知があります。

009

次にスプレッドシートを確認すると、A列「送付ステータス」が「送信済」に変化しております。

010

自分のメールを確認すると、テストメールが届くようになっています!

※タイトル、メール本文はスプレッドシートの内容通り

011

スプレッドシート側の関数を使う、GASのタイマー設定を行うことでより意図通りのメール自動化ができるのではないでしょうか。


これから勉強を始める方におすすめの方法4選

GASについてちゃんと勉強したい!もっと深く知りたい!という方向けに、おすすめサイトを紹介します。

Udemy

image18

<特徴>
コンテンツ買い切り型
有料のためコンテンツが良質
プログラミングの基礎から実践までを学べる

プログラミングのオンライン学習にて定番のudemyでは、有料コンテンツにふさわしい質、量ともに十分な内容が準備されています。

また、コンテンツ買い切りなので、GASに絞ったコンテンツのみ購入できるためお得感もあります。

しっかり勉強されたい方向けの印象で、「変数・定数」「データ型」「配列」などプログラミンをするにあたって避けて通れない概念についても丁寧に解説されており、教科書通りの学習を進めることができます。

Youtube

image14-2

<特徴>
無料でお手軽に情報を得ることができる
コンテンツの質については玉石混交

最近はYoutubeでも、GASを題材とした初心者向け講座を配信している方がいらっしゃいます。

Udemyのような有料講座と比べると、丁寧さには欠けるものの、手っ取り早く勉強される場合にはおすすめです。

まずはYoutubeで動画を視聴してみて、もっと深く知りたいとなった場合に有料コンテンツに手を出すのも良いでしょう。

いつも隣にITのお仕事:超初心者向けGASでBotを作りながら基礎を学ぶ

image19-min

<特徴>
全24章の充実したコンテンツ
知りたい情報にすぐアクセスができる
動画と違い自分のペースで学習できる

「いつも隣にITのお仕事」は「日本の働くの価値を上げる」を目指して活動をする 株式会社プランノーツ が運営しているメディアです。

その中にGAS初心者向けの連載形式でのコンテンツがあり、全24章と充実しています。

トピックごとに章立てされており、知りたい情報に即座にアクセスができ、自学に自信のある方はサクサク学習を進めることができるためお勧めです。

Qiita ~ 基礎が身についた方向け ~

image8-min

Qiitaは、エンジニアリングに関する知識を記録・共有するためのサービスです。

個人ユーザーがそれぞれの活動で得た情報をまとめて投稿してくれています。

だいたいの自動化したことは既に誰かがまとめてくれているケースが多く、ぜひ頼るべきです。

例えば、salesforce のデータをスプレッドシートにペーストしたい場合、「セールスフォース スプレッドシート GAS」のようにキーワード検索すると関連記事がでてきます。

Qiitaに拘らずGoogleで検索するだけでも関連記事が出てくるので、GASの基礎ができていて、さらに具体的にやりたいことが出てきた場合には是非先人の知恵をお借りください。


まとめ

GASは、無料で初心者でも取り掛かりやすいプログラミング言語です。

Googleサービスとの連携機能が大きな特徴になっています。

筆者も本記事でご紹介した方法で、プログラミングもわからない状態からGoogleサービスの自動化をどんどん進められるようになりました。

GASが自在に書けるようになると、業務自動化の幅がグンと広がりますので、是非活用ください。

【少額・スポット可】ネット広告運用の2次代行サービス『AG-Boost』