GASでGmailを操作して日々の日報メールの下書きを自動で作成する

draft

photo credit: mikecohen1872 draft via photopin (license)

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

日報メール書いてますか!?

弊社は私一人の会社なので、日報を求められることはなかなかないのですが、多くの企業では毎日の日報は、上司との大事なコミュニケーション手段となっていますよね。

ただ…面倒くないすか?

いや、上司とのコミュニケーションがというわけではなく、半分くらいは同じこと書いていません?

それを頑張ってキーボードで打っていたりしますか?

時間がもったいない!

ということで、GASでGmailを操作して、日々の日報メールの下書きを自動で作ってしまいましょう!という話です。

スポンサーリンク

日報の下書きを自動化すべき理由

さて、日報の書き方は会社や部署によって違うとは思うのですが、例えば以下のような日報があるとします。

○○さん
お疲れ様です。高橋です。

本日の日報をお送りします。

10:00-11:00 …
11:00-12:00 ……
12:00-13:00 昼休憩
………

以上です。これこれのかくかくしかじか。
明日もどうぞよろしくお願いいたします。

高橋

宛先を呼び最初のお疲れ様です的な挨拶、何時から何時と時間刻む部分、最後の挨拶…このあたりって、いつも同じだったりしません?

それを、毎日打つなんて…時間と指のエネルギーがもったいない!!

また、Gmail開いて、「+作成」で「新規メッセージ」を開いて「To」とか「件名」とか設定する…というのも、ルーティンですから正直ダルい作業です。

このへんは、GASのGmailの操作と、時限式のトリガーを活用して、すっかり自動化しちゃいましょう。

ということで、このシリーズでは、お決まりの部分を入力済みのメールの下書きを、毎日帰社前などの帰宅時に自動で作成するというのを目標に進めていきたいと思います。

スプレッドシートの準備

日報メールのお決まりの部分については、スプレッドシートで入力しておけると便利です。

以下のようなスプレッドシートを用意しました。

日報メール下書きのベースとなるスプレッドシート

B3セル、B4セルについては、この内容もスプレッドシート関数を使って自動で生成するようにしています。

例えば、タイトルの入力欄であるB3セルでは、としてB1セルが入力されていれば自動で生成されます。

=”日報 [” & B1 & “] : ” & TEXT(TODAY(), “yyyy/mm/dd(ddd)”)

B4セルの「書き出し」は

=TEXT(TODAY(), “yyyy/mm/dd(ddd)”) & “分、” & B1 & “の日報をお送りします。”

としています。

残りのB1,B2,B5,B6セルにはそれぞれお決まりの内容を入れていけばOKです。

B5セルの「本文」は当然毎日書くことが異なるわけですが、この部分はGmailの下書きが出来上がっていたら、それを開いて修正、そして手動で送信するというイメージでします。

Gmailで自動で下書き作成するスクリプト

では、このスプレッドシートの情報をもとに、Gmailで日報メールの下書きを自動で作成するスクリプトを作成しました。

先程のスプレッドシートのコンテナバインドスクリプトとして作成してくださいね。コンテナバインドがわからない方はこちらの記事をどうぞ。

【初心者向けGAS】本当の最初の一歩!スクリプトエディタでプロジェクトを開く
超初心者向けにGoogle Apps Scriptのプログラミングの一通りの流れと書き方について学ぶシリーズです。今回は、その最初の一歩としてスプレッドシートからスクリプトエディタを開く手順をお伝えします。

さて、コードですが、こちらです。

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枚しかないので、確実にアクティブなシートが決まるので、遠慮なく使えますね。

【初心者向けGAS】本当の最初の一歩!スクリプトエディタでプロジェクトを開く
超初心者向けにGoogle Apps Scriptのプログラミングの一通りの流れと書き方について学ぶシリーズです。今回は、その最初の一歩としてスプレッドシートからスクリプトエディタを開く手順をお伝えします。

次に、そのシートのデータがある範囲をgetDataRangeメソッドで取得します。

これがもう、超絶便利メソッドですね。

それでセル範囲を表すRangeオブジェクトが取得できますので、getValuesメソッドを使って二次元配列としてデータを取得します。

この1行については、ほぼお決まりフレーズといっても良いですね。非常によく使います。

二次元配列から宛先・件名・本文を取得、生成する

続いて、3行目から8行目までは、getValuesメソッドで取得した二次元配列のデータから、

  • to: 送信先メールアドレス
  • subject: メッセージの件名
  • body: メッセージの本文

を取得したり、生成したりする部分ですね。

二次元配列については、以下の記事も参考になるでしょう。

【初心者向けGAS】スプレッドシートのセル範囲の値を二次元配列として取得して取り扱う方法
Google Apps Script初心者向けのお題として、名言Botの作り方をお伝えしています。今回は、スプレッドシートのセル範囲の値を二次元配列としてgetValuesで取得して取り扱う方法です。

メールの下書きを作成する

そして、10行目がGmailで下書きを作成する部分です。

GmailAppのcreateDraftというメソッドを使います。

書式はこちらです。

GmailApp.createDraft(宛先, 件名, 本文)

これだけで、実行者のGmail下書きフォルダに指定した宛先、件名、本文にてメッセージの下書きを作成することができます。

実行して下書きを作成する

スクリプトを実行すると以下のようにメッセージの下書きを作成することができます。

GASで作成した日報メールの下書き

このスクリプトを毎日の帰社前の時間帯でトリガーを設定しておき、必要事項を入力して送信すればOKということですね。

まとめ

以上、GASでGmailを操作して毎日の日報の下書きを自動で作るスクリプトを紹介しました。

かなりシンプルなコードで実現できますし、実務でも使えるツールになりますから、Google Apps Script初心者の練習用としてもってこいですね。

次回は別の便利ツールとして、自動アーカイブのツールについて作っていきます。

GASでGmailの受信トレイに溜まった指定の日付以前のスレッドを自動でアーカイブする方法
Gmailの受信トレイにメール…溜まっていませんか?そんなときは、GASを使って自動アーカイブしちゃいましょう。今回は、GASでGmailの受信トレイの指定日付以前のスレッドをアーカイブする方法をお伝えします。

どうぞお楽しみに!

連載目次:GAS初心者にオススメ!簡単Gmailツールの作り方

Google Apps ScriptではGmailの操作をとても簡単に行うことができます。このシリーズでは、GAS初心者でもすぐに作れる、簡単便利なツールをいくつか紹介していきます。
  1. GASでGmailを操作して日々の日報メールの下書きを自動で作成する
  2. GASでGmailの受信トレイに溜まった指定の日付以前のスレッドを自動でアーカイブする方法
  3. GASでGmailの受信トレイに溜まった今日から指定の日数以前のスレッドをアーカイブする方法
タイトルとURLをコピーしました