こんにちは。ウエブルの井澤です。
メール、写真や資料共有、スケジュール管理など、日ごろからGoogleの各種サービスにお世話になっている方は少なくないのではないでしょうか。
ウエブルでも業務には欠かせないものとなっており、様々なシーンで利用しています。
でも、ちょっと待ってください。
日々の業務で「この作業、もう少し楽にならないかな」と思ったことはありませんか?
例えば・・
- 毎週、データを集計してメールでレポートを送信している
- カレンダーに登録した会議、すっかり忘れて大遅刻してしまった
- お問い合わせメールが届いたら自動で内容を取り込んでリスト化したい
など、ちょっとしたことではあるけど地味に「どうにかしたい」作業は少なからずあるのではないでしょうか。
そこでご紹介するのがGoogle Apps Script(以降、GAS:ガス)です。
GASはGoogleによって開発されたプログラミング言語で、Googleの各種サービスを自動化することができます。
「プログラミング言語」と聞いて敷居が高く感じられるかもしれませんが、基本的にはJavaScriptがベースになっているので、JavaScriptを学んだことがある方であれば難しくはありません。
大掛かりなDXは敷居が高いものですが、小さなところから作業の生産性を高めるのも立派なDXです。
まずはGASを使ってどのようなことができるのかを見ていき、最後に簡単なスクリプトを動かしてみましょう。
01. GASのメリット
先ほど記載した「JavaScriptがベース(勉強コストが低い)」ということに加え、googlアカウントを持っていれば誰でも無料で開発が可能というのが大きなメリットです。
スクリプトが動作するサーバーを用意する必要もなく、コスト面を気にせずトライできます。
また、連携できるGoogleのサービスも様々用意されています。
他にも連携できるサービスはありますが、よく使い、自動化したくなることが多いものをご紹介します。
<連携できるサービス例>
- Gmail
- Google スプレッドシート
- Google カレンダー
- Google ドライブ
また、Googleのサービスだけでなく、外部サービスとの連携も可能です。
連携先のサービスが対応していることが前提ですが、業務でよく利用されるチャットツール(Slack、ChatWorkなど)も連携が可能です。
スクレイピングのようなことも可能ですが、スクレイピングに関しては禁止行為としているwebサービスもあるので注意しましょう。
※スクレイピングとは:WebサイトのHTMLから特定の情報を取得、加工処理すること
02.GASでできること
GASを使うとどのようなことが自動化できるのでしょうか。
サービスごとに、例をご紹介します。
Gmail
- メール送信
Gmailを使ってメール送信を自動化することが可能です。
毎日、同じ宛先に報告メールやサマリーメールを送信している場合に業務の自動化ができる可能性があります。 - メール検索結果とスプレッドシートの連携
受信したメールの中から特定のメールを探して操作することが可能です。
利用している別のサービスから利用状況のサマリーがメールで送信されてきて、その値を集計しているような場合、メール文面を読み込んで該当の箇所をスプレッドシートに書き溜めていく といった連携が可能です。 - 既読、未読の切り替え、スターを付ける 等の操作
未読メールを既読にしたり、スターを付けたりすることが可能です。
先ほどのメール検索結果とスプレッドシートの連携の際に、「未読のメールのみを操作対象とする」とし、処理の最後に「メールを既読にする」としておくことで、次回の処理実行の際に処理済みメールを対象から除外できます。
Google スプレッドシート
- スプレッドシートを開いて値を読み込み、書き込み
スプレッドシートに記載されている内容をもとに、データを操作することが可能です。
複数のCSVデータを結合して必要な列だけ抜き出して1つのスプレッドシートにまとめる、シートに記載されているデータをSlackに通知する、なども可能です。 - データの一括置換
特定の文字1つだけを置換するのであればGASは必要ないのですが、複数のワードが置換対象の場合、ひとつずつ置換するのは面倒かつ現実的ではありません。
例えば、特定の列のデータの中に都道府県名が含まれている場合、その都道府県を消すという処理を自動化することができます。例)システムからダウンロードした自己紹介データに出身地が混ざっているが、個人情報のため削除したい
Google カレンダー
- カレンダーの内容を読み取り、別のサービスに通知
カレンダーに入れた予定を読み取って、別のサービス(SlackやChatWorkなど)に通知が可能です。
個人のスケジュールを通知してリマインダー代わりにしたり、チームの定例会議であればチームのSlackにリマインドできるので、会議に遅刻することが減るかもしれません。
Google ドライブ
- ドライブ内のファイル操作
この機能単発で利用することはあまりないのですが、例えば特定のスプレッドシートの内容を指定のドライブにコピーする、フォルダ内に入っているファイル名一覧を取得する、などが可能です。
だいたいスプレッドシートで何かしら処理した後に、併せて利用するケースが多いです。
03.実際に使ってみる
色々なことが自動化できそうだな、とワクワクしてきたところで、GASを実際に動かしてみましょう。
GASを開くには、Googleドライブから開く方法と、Googleスプレッドシートから開く方法がありますが、
実際に利用シーンが多いスプレッドシートから開いてみます。
1. スプレッドシートを作成
GASのテスト用に、スプレッドシートを新規で作成してください。
2. スクリプトを作成
新規作成後、拡張機能 > Apps Script をクリックします。
スクリプトの画面が開きます。
初期状態で以下のコードがありますが
function myFunction() {
}
こちらは丸っと消して、以下のサンプルコードをコピペしてください。
先ほど作成したスプレッドシートのA1セルに「test」と書き込むだけのものです。
function setTestData() {
let sheet = SpreadsheetApp.getActiveSheet();
let value = "test";
sheet.getRange(1, 1).setValue(value);
}
貼り付け後、保存してください。
3. スクリプト実行
保存したら、「setTestData」を実行してみましょう。
初回のみ、承認操作が必要です。
このような画面が表示されたら、「権限を確認」をクリックし、
安全ではないページに移動します。
※ マスクしている部分には、GASを実行しているGmailアドレスが表示されます。
その後、権限関連の注意事項が表示されるので、確認の上許可してください。
承認作業が完了したら、再度「実行」を押下します。
下部に実行ログが表示されますので、エラー(赤背景になります)なく実行完了するか確認してください。
4. 確認
スプレッドシートのA1セルに、「test」と書き込まれていれば成功です。
04.最後に
いかがでしたか?
エラーなく実行できたでしょうか。
簡単なものですが、成功した時の嬉しさはひとしおですね。
サンプルのコードは、「実行すると決まった文章を指定の位置に書き込みする」だけのものでしたが、
これを応用すれば様々なことが実現可能です。
私もGASでコードを作成するときはこのコードをベースに色々機能を追加して作成しています。
他にも便利な技がたくさんあるので、別の機会にご紹介したいと思います。
ぜひGASを使って、小さなことからでもよいので自動化・業務効率化してみてください!