フリーランス&副業向け交流会イベントのお知らせ 他
- 隔週月曜更新!フリーランス・副業ニュース
Google Apps Scriptが便利なことはわかっても、具体的に何ができるかわからない人はとても多いです。
そこで今回は、Google Apps Scriptの概要や特徴、Google Apps Scriptでできることを10個ご紹介します!
これからGoogle Apps Scriptをはじめてみたい方は、ぜひ御覧ください。
目次
Google Apps Script(略称:GAS)とは、Googleが提供しているプログラミング言語です。JavaScriptをベースに作られています。
Googleアカウントさえあれば開発環境なしで簡単に利用できるほか、Googleスプレッドシート等の各Googleサービスと連携可能で、データ分析・グラフ作成なども効率化できます。
Excelなどを効率化するプログラミング言語としてVBAがありますが、そのGoogle版といえるでしょう。
Google Apps Scriptには、大きく5つの特徴があります。
- 無料で使えるためユーザーが多い
- 開発環境の構築が不要
- Googleサービスと連携できる
- 外部アプリケーションと連携できる
- PCを起動しなくても自動実行できる
以下でそれぞれ詳しく解説します。
Google Apps Scriptは、Googleアカウントがあれば誰でも無料で利用できます。途中から有料になることもありません。
無料で使えるためユーザーも多く、ネットに情報も豊富です。分からないことがあったときでも、多くの場合は調べれば答えが見つかるため、始めてプログラミングを学ぶ人にもおすすめです。
Google Apps Scriptは、開発環境を構築する必要がありません。以下のような簡単な手順で、すぐに始められます。
- Googleスプレッドシートを開く
- Google Apps Script用のエディタを開く
- コードを書いて実行する
Googleスプレッドシートのメニューから、簡単にスクリプトが書けます。
詳しい手順は、後ほど画像付きで解説します。
Googel Apps Scriptの最大の魅力は、Googleサービスとの連携ができる点です。
Googleには、たとえば以下のようなサービスがあります。
- Gメール
- Googleドライブ
- Googleドキュメント
- Googleスプレッドシート
- Googleスライド
- Googleフォーム
- Googleカレンダー
これらのサービスと連携したプログラムが作れるのです。
普段のちょっとした作業を効率化するだけでなく、各サービスを連携して大幅に工数を削減できる可能性を秘めています。
具体的にできることについては、後ほど解説します。
Google Apps ScriptはGoogle関連サービスだけでなく、以下のような外部アプリケーションとも連携できます。
■連携ツールが作れる外部アプリケーションの例
- Slack
- Chatowork
- Trello
- Backlog
- Redmine
例えばGoogleスプレッドシートとSlackを連携すると、以下のようにアラートを送ることもできます。
上記以外にも、Google Apps Scriptを使って業務を効率化する方法はたくさんあります。後ほど詳しく解説します。
Google Apps Scriptでは、作ったプログラムを実行する時間が指定できます。
「定期的なルーチンワークは自動で終わらせておき、データチェックだけ行う」といった業務効率化が可能なため、工数を大幅に削減できます。
ここからは、Google Apps Scriptでできることについて、10個の活用方法を紹介します!
Google Apps Scriptを使えば、手作業で行っていた業務を自動化できます。
「毎月同じような業務があるなぁ……」「月末・月初に大量に同じような作業があって、他の仕事が出来ないんだよなぁ…..」という人は、自動化ツールを作れば業務が楽になるでしょう。
自動化ツールは、大きく分けて以下の2通りがあります。
- ボタンクリックひとつで、一連の定型タスクを全自動で実行する
- スケジュール実行で、決まった時間に一連の定型タスクを全自動で実行する
例えば定型的かつ複雑な計算を効率化するなら、ボタンクリックひとつで全自動で計算してくれるプログラムを構築すると良いでしょう。
また決まった時間に自動で動くツールを作っておくことで、定期的な業務も減らせます。
定型的な手動操作なら、その多くを自動化できるので、業務が楽になりますね。
Googleスプレッドシートには、「マクロの記録」という機能があります。マクロの記録を使えば、手動操作を「自動でスクリプトに変換」できます。プログラミングがあまり分からなくても扱えるため便利です。
たとえば、以下のような業務は簡単に自動化できます。
- データ一覧から、グラフを作成する業務
- データ抽出した結果をコピペする作業
上記はあくまでも一例ですが、ちょっとした作業を簡単に自動化できるのは便利ですよね。
「日次データを月次データに取り込む作業」は、よくある業務のひとつですよね。Google Apps Scriptを使えば、日次データのブックから月次データのブックを作成するスクリプトが作れます。
ブック間のデータ連携もできるので、データの扱いも容易です。
Googleフォームの回答をGoogleスプレッドシートに出力できるのはもちろん、Google Apps Scriptを使えば、Googleフォームのサマリーデータを自動でメール送信できます。
例えば週次のサマリーデータを自動でメール送信することで、わざわざスプレッドシートを開く手間が削減できます。
Google Apps Scriptを使えば、GoogleスプレッドシートのグラフをGoogleスライドにコピペするプログラムも作れます。
定期的な報告資料を作る業務がある方は、連携処理を実行するだけでスライド作成が完了するのです
SNSは、マーケティングにおいても大事なプラットフォームのひとつですよね。Twitterなどのデータ分析をしている方も多いのではないでしょうか。
Google Apps Scriptを使えば、「簡単なデータ収集 + まとめ」を自動で行うプログラムが簡単に作れます。
Twitter連携方法は「GASでTwitterの投稿とタイムライン取得」のような、Qiitaの記事がたくさんあるのでそちらをご参照ください
収集したデータから自動でグラフを作成するプログラムまで作りこめば、データ分析業務が効率化できますね。
SlackやChatworkなどのコミュニケーションツールを使っている企業は多いですよね。Google Apps Scriptを使えば、そのようなコミュニケーションツールとの連携もできます。
たとえば以下のような連携プログラムが作れます。
- GoogleスプレッドシートのサマリーデータをSlackに送信するプログラム
- Slackの「質問チャンネル」の投稿をスプレッドシートに一覧化するプログラム
GoogleスプレッドシートでWBSを作り、プロジェクトの進捗管理をしている方も多いでしょう。
ただ毎回細かく進捗をチェックしていると、時間がかかってしまいますよね。そこで以下のようなプログラムを構築することで、工数を減らせます。
- 進捗遅延が起きているタスクを、毎朝Slack通知するプログラム
- 重要度が「高」 + 今週納期のタスクを毎朝Slack通知するプログラム
- 完了したタスクの行を「進捗管理シート」から「完了済みシート」に移動するプログラム
管理者は、Slackから通知の来たタスクを優先的に確認できます。また、「進捗管理シート」には稼働タスクのみ表示されているので、タスク一覧に目を通す時間を短縮できます。
Googleスプレッドシートには、「Importxml」という便利な関数があります。これを使えば、URLを指定してWebからデータ取得できるのです。
例えば、以下のようなプログラムが簡単に作れます。
- Googleの検索結果一覧から「タイトル」「ディスクリプション」を取得
- サイトを指定して見出しタグの情報を取得
ただ、Googleスプレットシート単体では、以下のような欠点があります。
- 処理がとにかく重い
- 細かな制御ができない
一方でGoogleスプレッドシートとGoogle Apps Scriptを組み合わせることで、より細かい条件で、かつ高速にデータ取得できるというメリットがあります。
「業務効率化プログラムが作れる」という視点でここまで解説しましたが、本格的なアプリも作れます。
例えば、以下のよう簡単なデータ登録アプリも作れます。
Googleスプレッドシートをデータベースとして活用できるので、開発環境を別で用意する必要もありません。
まずはGoogle系のサービスを効率化するプログラムを作ってみて、慣れてきたら本格的なアプリを作ってみると良いでしょう。
次に、Google Apps Scriptを始める手順について解説します。
Google Apps Scriptを始める手順は、以下のとおりです。
- 事前準備:スプレッドシートを作成する
- 作成手順1:スクリプトエディタを開く
- 作成手順2:入力するスプレッドシートを取得する
- 作成手順3:A1セルに値を書き込む
- 作成手順4:スクリプトを実行する
以下でそれぞれ詳しく解説します。
まず、Googleスプレッドシートを作成します。
Google ドライブを開いて右クリックし、Google スプレッドシートを選択しましょう。
選択すると、以下のように空のスプレッドシートができます。
作成できたら、以下のように名前を付けておきましょう。
次に、Google Apps Scriptを書くためのエディタを開きます。
まず、ツールタブにあるスクリプトエディタを選択しましょう。
スクリプトエディタを開くと、「Function myFunction(){ }」と書かれたエディタが表示されます。
作成できたら、こちらも名前を付けておきましょう。
次に、簡単なコードについて解説します。
いきなりコードを見せても分かりづらいため、最初にスプレッドシートのデータ構造について解説します。
Googleスプレッドシートは、以下のような構造になっています。
スプレッドシートの中に複数のシートがあり、シートの中に複数のセルがあります。そのため、セルに値を書き込むプログラムを作るときも、以下の手順でコードを記述していきます。
- 対象のスプレッドシートを指定
- スプレッドシートのシート名を指定
- 値を書き込むセルを指定
- セルに値を入力
「スプレッドシート → シート」の順で指定するのが、最初のステップです。具体的には、以下のように書きます。
function myFunction() {
// ①開いている「スプレッドシート」を取得
var ss = SpreadsheetApp.getActiveSpreadsheet();
// ②開いているスプレッドシートの「シート」を取得
var sheet = ss.getActiveSheet();
}
「var 〇〇ってなんだ……」と思った方もいるかもしれませんが、値を保存しておくための箱だと思ってください。プログラミング用語では「変数」と呼ばれます。
①の処理で、変数「ss」に今開いているスプレッドシートを指定します。その後、➁の処理で変数「sheet」に表示しているシートを入れています。
これで、今開いているシートを指定できました。
次に、A1セルに値を書き込むためのコードを追加していきます。
セルを指定して値を書き込む書き方は、以下のとおりです。
Range("セルのアドレス”).setValue(値);
これを先ほどのコードに加えると、次のようになります。
function myFunction() {
// ①開いている「スプレッドシート」を取得
var ss = SpreadsheetApp.getActiveSpreadsheet();
// ②開いているスプレッドシートの「シート」を取得
var sheet = ss.getActiveSheet();
// ③A1セルに値を書き込む
sheet.getRange("A1").setValue("初めてのセル入力!!");
}
これで、A1セルに値を書き込むコードは完成です。
コードが完成したら、スクリプトを実行してみましょう。
「実行 → 関数を実行 → 関数名(myFunction)」の手順で、実行する関数を選択します。
ただし初めてスクリプトを実行するときは、次のような画面が出てきます。
以下手順で許可をしていく必要があります。
1. 「許可を確認」をクリック
2. 表示されたアカウントをクリック
3. 「詳細」をクリック
4. 「初めてのスクリプト(安全ではないページ)に移動」をクリック
5. 「許可ボタン」をクリック
ここまで終わらせると、Google Apps Scriptのスクリプトが実行されます。
実行が終わり、以下のようにA1セルに値が表示されればOKです!
Google Apps Scriptはあくまでプログラミング言語なので、慣れないうちは書き方に悩み、挫折してしまう人も多いです。
学習で挫折しないためには、以下の2つのコツを意識しましょう。
- エラーが起きたときの解決策を知っておく
- Google Apps Scriptの学習サイトを活用する
以下でそれぞれ詳しく解説します。
プログラミングは、自分で書いたコードの間違いを直しながら組んでいくものです。
ググって調べたコードをそのまま使っても動かないケースはよくあるため、エラーの解決策を知っておきましょう。
参考までに、よくあるエラーの原因・解決策を以下でご紹介します。
よくあるエラーのひとつとして、「指定したシートの定義がない」ケースが挙げられます。
Google Apps Scriptでは、以下のようにシート名を指定できます。
getSheetByName(シート名)
そのため、先述したサンプルコードは以下のように変更できます。
function myFunction() {
// ①開いている「スプレッドシート」を取得
var ss = SpreadsheetApp.getActiveSpreadsheet();
// ②シート1の名前の「シート」を取得
var sheet = ss.getSheetByName("シート1");
// ③A1セルに値を書き込む
sheet.getRange("A1").setValue("初めてのセル入力!!");
}
このコードは、「シート1」の名前のシートを取得し、A1セルに値を書き込むプログラムです。指定したシート名が存在しなかったため、上記のようにエラーメッセージが出てしまいました。
しかしエラーメッセージを見ても、「シート名が間違っていること」がよく分かりませんよね。
このような場合は、以下の手順でエラー原因を特定していきましょう。
- 変数名「sheet」に入っている値は正しいか?
- getRangeの書き方は正しいか?
- setValueの書き方は正しいか?
コードの左側から順に、値や書き方が正しいか調べていくのです。例えば以下のように、シートが正しいか確認します。
function myFunction() {
// ①開いている「スプレッドシート」を取得
var ss = SpreadsheetApp.getActiveSpreadsheet();
// ②開いているスプレッドシートの「シート」を取得
var sheet = ss.getSheetByName("シート1");
// ③シートが正しいかシートの名前を確認
Browser.msgBox(sheet.getSheetName());
}
「msgBox」を使えば、上記のようにメッセージを表示できます。名前が表示されればシートがあっているか確認できますし、間違っている場合は先ほどのエラーが出力されます。
このように、ひとつずつ書き方が間違っていないかをチェックし、エラーの原因を突き止めていきましょう。
もうひとつよくあるのが「存在しない変数名を指定してしまう」ケースです。
例えば、以下のコードをご覧ください。
function myFunction() {
// ①開いている「スプレッドシート」を取得
var ss = SpreadsheetApp.getActiveSpreadsheet();
// ②シート名がシート1のシート「シート」を取得
var sheet = ss.getSheetByName("シート1");
// ③A1セルに値を書き込む
sheet1.getRange("A1").setValue("初めてのセル入力!!");
}
②で変数「sheet」に、「シート1」というシート名を入れています。しかし③のセルに値を書きこむ処理で「sheet1」を指定しているため、エラーになっています。
変数名を間違えてしまうことはよくあるので、注意しましょう。
Google Apps Scriptの学習におすすめのサイトは、以下の2つです。
- ドットインストール
- いつも隣にITのお仕事
以下でそれぞれ詳しく解説します。
『ドットインストール』は、動画でプログラミングが学べる学習サービスです。1動画約5分という短時間の学習動画が特徴。一つひとつが短くまとまっているため飽きにくく、初心者におすすめできます。
動画を見ながら実際に手を動かし、身体で理解を深めていくのがおすすめです。
『いつも隣にITのお仕事』は、IT系の記事を取り扱っているメディアです。Google Apps Script以外にも、さまざまな言語解説記事があります。
主な特徴は以下のとおりです。
- ツールを作る連載記事が豊富なので、似たようなプログラムを作りやすい
- 【保存版】初心者向け実務で使えるGoogle Apps Script完全マニュアル のような、まとめページがある
プログラムをひとつずつ作って、実戦で着実にスキルを伸ばしていきたい方におすすめです。
ふたつのサイトを活用すれば、効率よく学習を進められるでしょう。
しかし学習していて悩むポイントは、人によって違いますよね。そのため、分からないことを解決するコツも覚えておきましょう。
分からないことがあった時はときは、以下のように「site:サイトのURL 知りたいこと」で調べるのがおすすめです。
上記は、いつも隣にITのお仕事 の中で、「Google Apps Script Gmail」に関連のある記事を調べたときの例です。
関連のある記事が表示されていますよね。Web記事を逆引き検索できるので、覚えておくと便利です!
今回は、Google Apps Scriptでできることについて解説しました。
Google Apps Scriptは、使いこなすと業務効率を圧倒的に上げられる、強力な武器となります。
簡単なプログラムからで良いので、ぜひ挑戦してみてくださいね!
(執筆:しろ 編集:じきるう)
G suiteとは?便利な利用例やアプリ一覧を紹介
Workship MAGAZINE
2024年 東京都内の優良プログラミングスクール20選
Workship MAGAZINE
DMM WEBCAMPの評判は本当?転職成功率98%の噂を責任者・白井さんに聞いてみた
Workship MAGAZINE