みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。
日報メール書いてますか!?
弊社は私一人の会社なので、日報を求められることはなかなかないのですが、多くの企業では毎日の日報は、上司との大事なコミュニケーション手段となっていますよね。
ただ…面倒くないすか?
いや、上司とのコミュニケーションがというわけではなく、半分くらいは同じこと書いていません?
それを頑張ってキーボードで打っていたりしますか?
時間がもったいない!
ということで、GASでGmailを操作して、日々の日報メールの下書きを自動で作ってしまいましょう!という話です。
日報の下書きを自動化すべき理由
さて、日報の書き方は会社や部署によって違うとは思うのですが、例えば以下のような日報があるとします。
お疲れ様です。高橋です。
本日の日報をお送りします。
10:00-11:00 …
11:00-12:00 ……
12:00-13:00 昼休憩
………
以上です。これこれのかくかくしかじか。
明日もどうぞよろしくお願いいたします。
高橋
宛先を呼び最初のお疲れ様です的な挨拶、何時から何時と時間刻む部分、最後の挨拶…このあたりって、いつも同じだったりしません?
それを、毎日打つなんて…時間と指のエネルギーがもったいない!!
また、Gmail開いて、「+作成」で「新規メッセージ」を開いて「To」とか「件名」とか設定する…というのも、ルーティンですから正直ダルい作業です。
このへんは、GASのGmailの操作と、時限式のトリガーを活用して、すっかり自動化しちゃいましょう。
ということで、このシリーズでは、お決まりの部分を入力済みのメールの下書きを、毎日帰社前などの帰宅時に自動で作成するというのを目標に進めていきたいと思います。
スプレッドシートの準備
日報メールのお決まりの部分については、スプレッドシートで入力しておけると便利です。
以下のようなスプレッドシートを用意しました。
B3セル、B4セルについては、この内容もスプレッドシート関数を使って自動で生成するようにしています。
例えば、タイトルの入力欄であるB3セルでは、としてB1セルが入力されていれば自動で生成されます。
B4セルの「書き出し」は
としています。
残りのB1,B2,B5,B6セルにはそれぞれお決まりの内容を入れていけばOKです。
B5セルの「本文」は当然毎日書くことが異なるわけですが、この部分はGmailの下書きが出来上がっていたら、それを開いて修正、そして手動で送信するというイメージでします。
Gmailで自動で下書き作成するスクリプト
では、このスプレッドシートの情報をもとに、Gmailで日報メールの下書きを自動で作成するスクリプトを作成しました。
先程のスプレッドシートのコンテナバインドスクリプトとして作成してくださいね。コンテナバインドがわからない方はこちらの記事をどうぞ。
さて、コードですが、こちらです。
function createDraft() { const values = SpreadsheetApp.getActiveSheet().getDataRange().getValues(); const to = values[1][1]; const subject = values[2][1]; let body = ''; body += values[3][1] + 'nn'; body += values[4][1] + 'nn'; body += values[5][1]; GmailApp.createDraft(to, subject, body); }
結構シンプルですよね…!解説をしていきます
シートのデータを二次元配列として取得する
まず、2行目ですね。
SpreadsheetAppのgetActiveSheetメソッドで、バインドしているスプレッドシートのアクティブなシートを取得します。
シートは1枚しかないので、確実にアクティブなシートが決まるので、遠慮なく使えますね。
次に、そのシートのデータがある範囲をgetDataRangeメソッドで取得します。
これがもう、超絶便利メソッドですね。
それでセル範囲を表すRangeオブジェクトが取得できますので、getValuesメソッドを使って二次元配列としてデータを取得します。
この1行については、ほぼお決まりフレーズといっても良いですね。非常によく使います。
二次元配列から宛先・件名・本文を取得、生成する
続いて、3行目から8行目までは、getValuesメソッドで取得した二次元配列のデータから、
- to: 送信先メールアドレス
- subject: メッセージの件名
- body: メッセージの本文
を取得したり、生成したりする部分ですね。
二次元配列については、以下の記事も参考になるでしょう。
メールの下書きを作成する
そして、10行目がGmailで下書きを作成する部分です。
GmailAppのcreateDraftというメソッドを使います。
書式はこちらです。
これだけで、実行者のGmail下書きフォルダに指定した宛先、件名、本文にてメッセージの下書きを作成することができます。
実行して下書きを作成する
スクリプトを実行すると以下のようにメッセージの下書きを作成することができます。
このスクリプトを毎日の帰社前の時間帯でトリガーを設定しておき、必要事項を入力して送信すればOKということですね。
まとめ
以上、GASでGmailを操作して毎日の日報の下書きを自動で作るスクリプトを紹介しました。
かなりシンプルなコードで実現できますし、実務でも使えるツールになりますから、Google Apps Script初心者の練習用としてもってこいですね。
次回は別の便利ツールとして、自動アーカイブのツールについて作っていきます。
どうぞお楽しみに!