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」の順にクリックします。
「Google Apps Script」が出てこない場合は、「アプリの追加」をクリックします。
「Google Apps Script」と検索し、手順に沿ってインストールします。
インストールが出来たらGoogleドライブを開き、「新規」→「その他」→「Google Apps Script」の順にクリックします。
このようなスクリプトエディタ画面が開けたら準備完了です。
スクリプトエディタの説明
ここで、スクリプトエディタでよく触る箇所の説明をします。
※名称は公式なものがないため、筆者が付けたものです。
- プロジェクト名
デフォルトでは「無題のプロジェクト」となっていますが、クリックすると変更可能です。作成するプログラムの概要がわかるような名前に変更しましょう。
- サイドバー
プロジェクトの情報、実行履歴など確認ができます。時計マークのボタンをクリックすると、スクリプトの時間指定ができます。おもにスクリプトが完成した後に確認することになります。
- エディットバー
「戻る」「進む」「保存」などのファイル編集によくある機能や、スクリプトの実行ボタンなど、スクリプト作成時によく使う箇所です。
- スクリプトエディタ
実際にコードを書く場所になります。
GASのコードについて
コードの構造
実際のサンプルスクリプトを用いながら、コードの構造説明をします。
プログラミングの一歩目によく用いられる「Hello world」とログを出すスクリプトを用います。
まずはスクリプトエディタにこちらの、コードをコピペしてください。
function ハローワールド() {
var value = "Hello World";
Logger.log(value);
}
続いて、「プロジェクトを保存」ボタンを押し、実行ボタンを押してください。
すると以下のように実行ログが出てきて、その中に「Hello world」というログを残すことができます。
これで、一つのスクリプトをかけたことになります!
さて、スクリプトの説明です。
コードは必ず以下の構造となります。
関数名は任意のものでよく、今回は「ハローワールド」と名付けました。
コードの中身については、やりたいことによって変わってきますが、ひとつのプログラムがこちらの構造で成り立っている、ということを理解ください。
承認を求められたとき
スクリプトを実行するとき、初回に承認を求められることがあります。
ダイアログが出た場合には、以下の手順にて承認を進めてください。
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("送信済")
}
}
}
ここでひとつ注意事項です。
3行目の’△△△’と記載している箇所には、先ほどのスプレッドシートのIDを入力してください。
このスクリプトを保存し、実行してください。
実行時に承認が求められる場合は、承認し進めてください。
すると、スクリプトエディタ上では実行開始・完了の通知があります。
次にスプレッドシートを確認すると、A列「送付ステータス」が「送信済」に変化しております。
自分のメールを確認すると、テストメールが届くようになっています!
※タイトル、メール本文はスプレッドシートの内容通り
スプレッドシート側の関数を使う、GASのタイマー設定を行うことでより意図通りのメール自動化ができるのではないでしょうか。
これから勉強を始める方におすすめの方法4選
GASについてちゃんと勉強したい!もっと深く知りたい!という方向けに、おすすめサイトを紹介します。
Udemy
<特徴>
コンテンツ買い切り型
有料のためコンテンツが良質
プログラミングの基礎から実践までを学べる
プログラミングのオンライン学習にて定番のudemyでは、有料コンテンツにふさわしい質、量ともに十分な内容が準備されています。
また、コンテンツ買い切りなので、GASに絞ったコンテンツのみ購入できるためお得感もあります。
しっかり勉強されたい方向けの印象で、「変数・定数」「データ型」「配列」などプログラミンをするにあたって避けて通れない概念についても丁寧に解説されており、教科書通りの学習を進めることができます。
Youtube
<特徴>
無料でお手軽に情報を得ることができる
コンテンツの質については玉石混交
最近はYoutubeでも、GASを題材とした初心者向け講座を配信している方がいらっしゃいます。
Udemyのような有料講座と比べると、丁寧さには欠けるものの、手っ取り早く勉強される場合にはおすすめです。
まずはYoutubeで動画を視聴してみて、もっと深く知りたいとなった場合に有料コンテンツに手を出すのも良いでしょう。
いつも隣にITのお仕事:超初心者向けGASでBotを作りながら基礎を学ぶ
<特徴>
全24章の充実したコンテンツ
知りたい情報にすぐアクセスができる
動画と違い自分のペースで学習できる
「いつも隣にITのお仕事」は「日本の働くの価値を上げる」を目指して活動をする 株式会社プランノーツ が運営しているメディアです。
その中にGAS初心者向けの連載形式でのコンテンツがあり、全24章と充実しています。
トピックごとに章立てされており、知りたい情報に即座にアクセスができ、自学に自信のある方はサクサク学習を進めることができるためお勧めです。
Qiita ~ 基礎が身についた方向け ~
Qiitaは、エンジニアリングに関する知識を記録・共有するためのサービスです。
個人ユーザーがそれぞれの活動で得た情報をまとめて投稿してくれています。
だいたいの自動化したことは既に誰かがまとめてくれているケースが多く、ぜひ頼るべきです。
例えば、salesforce のデータをスプレッドシートにペーストしたい場合、「セールスフォース スプレッドシート GAS」のようにキーワード検索すると関連記事がでてきます。
Qiitaに拘らずGoogleで検索するだけでも関連記事が出てくるので、GASの基礎ができていて、さらに具体的にやりたいことが出てきた場合には是非先人の知恵をお借りください。
まとめ
GASは、無料で初心者でも取り掛かりやすいプログラミング言語です。
Googleサービスとの連携機能が大きな特徴になっています。
筆者も本記事でご紹介した方法で、プログラミングもわからない状態からGoogleサービスの自動化をどんどん進められるようになりました。
GASが自在に書けるようになると、業務自動化の幅がグンと広がりますので、是非活用ください。