見出し画像

GASのすゝめ

どうも、あつまるのエンジニア ふみふみ です。
最近はチーム内で すー、すーさん と呼ばれ始めています。

入社(転職)してようやく3ヶ月経ちました。日々が充実しつつも忙しく、時間が過ぎるのがとても早く感じます。
嬉しいことに周囲からは「まだ3ヶ月?! 半年とか1年くらいるかと思った」みたいなことを言われたり言われなかったりします。


さて、みなさんはG Suite(Google)を利用していますでしょうか?

【G Suiteとは】
Googleが提供するグループウェアサービス。
GmailやGoogleカレンダー、ドキュメント、スプレッドシートなどのツールを企業向け機能追加したもの

ドキュメント(≒ Word)やスプレッドシート(≒ Excel)などは複数人で同時編集が可能だったり、随時自動保存されたり、変更履歴をさかのぼって版を復元できたりと、Microsoft Officeのかゆいところに手が届いたような感じがあってすごく便利だなと感じています。


この G Suite、それぞれのツールだけでも十分魅力的な機能があるのですが、scriptを書くことによりツール間の連携を自動化できたり、Google以外の他のツールとも自動化できたりするのです。


この夢の自動化ツールこそが「Google Apps Script(GAS)」なのです!
(ガス と読んだり ジーエーエス と読んだり)


GASから始めるプログラミング

え? そんなに夢のツールではない?
プログラマーじゃないから自分には使えない?


はい、決して夢のツールではありません (ぇ
しかし、G Suiteを使用していて1回1回手で何かにコピペしたりするような「無駄」を省くことができます。


大規模な自動化ツール的なものはプログラマーに作ってもらいましょう。
でも、プログラマーでなくても簡単なものならネットで調べながらコピペして、ちょっといじって動かすことが可能です。


習うより慣れろ
、早速やってみましょう(ぇ


サンプル
Gmailに届いているメールから特定条件のメールを検索して取得する


1.  テキトーにスプレッドシートを開きます。
2. ツール > スクリプトエディタ をクリックします。

3. 適当なプロジェクト名に変更します。


4. 下記のコードをコピーし、
 エディタ上で「ctrl」+「A」→ 「ctrl」+「V」でペーストします。

function searchMail() {
 
 // Gmailの検索条件
 var terms = "テスト";

 var threads  = GmailApp.search(terms, 0, 30); //条件にマッチしたスレッドを検索して取得
 var messages = GmailApp.getMessagesForThreads(threads); //スレッドからメールを取得する

 for(var i=0; i<messages.length; i++){
   Logger.log(messages[i][0].getSubject());  //各スレッドの1番目のメールの件名をログ出力
 }
}

5. 実行ボタン「▶」をクリックします。
6. 初回実行時に「承認が必要です」とポップアップが出るので、
 ぽちぽちクリックして許可します。
7. 「command」+「Enter」でログを表示してみましょう。
 下記みたいな感じでログに、取得したメールの件名が表示されます。

とまぁ、簡単にメール情報を取得することができました。
取得してきた情報をスプレッドシートに書いたりすることもできます。


色々なツールと連携

G Suite以外にも、ChatworkやSlackなどのチャットツール等とも連携が可能です。

また、GASのデフォルトの機能で毎回この時間にscriptを起動させるなどのトリガー設定が可能です。自動で通知させてリマインドさせたり、scriptを定期実行させて効率化を図りましょう!


入社して作ったGAS(抜粋

入社して3ヶ月、僕が作ったscriptのいくつかを羅列してみます。こんなことできるんだの参考になれば幸いです。
※ シート = スプレッドシート。


・カレンダー > 案件のスケジュール記載のシートへ情報転記がめんどい
=> 毎日深夜に自動でカレンダー情報を取得
=> 未来のスケジュールなら予定欄に。過去のスケジュールなら実績欄に


・制作物のチェック時、依頼漏れが起こる!
=> シートに必要情報記載 > 独自メニューボタンぽちっ
=> 対象メンバーのカレンダーにスケジュール自動登録
=> 対象メンバーをChatworkのタスクに自動登録


・見積相談フォームに回答
=> 回答用に見積りフォーマットを自動コピー
=> 連絡用にChatworkのグループを自動作成
=> カレンダーにスケジュールを自動登録


・定例MTGのアナウンスめんどい!毎回シート作成めんどい!
=> 前回の定例MTGシートを自動コピーして次回分作成 > 不要な情報削除
=> MTG前日にChatworkにシート記入のリマインド


などなど。
まだまだ他にもありますが、まぁ普段人の手でやっている面倒なことはそこそこ自動化できます。便利ですね。



これを機会にみなさんもGASに触れてみてはいかがでしょうか?

この記事が気に入ったらサポートをしてみませんか?