2020.7.5
私は特定のお付き合いのある業者さんに、毎月一回私の行った作業の進捗を送っています。ですがおの進捗を送るという作業が非常にめんどくさい。
そのためなるべく自動化するための私の方法をご紹介します。
私は普段仕事のやり取りに Gmail を使い、 自分の会社のドメインからのメールを Gmail に転送してやり取りをしています。
業者さんとのやり取りには、現実的に考えて、メールメールを使うことが大半でしょう。
そのため Gmail のラベル機能を使って作業の進捗をまとめてます。
具体的にはメールの件名を作業の進捗と兼ねるような書き方にすることです。以下に手順をまとめていきます。
メールの件名の書き方については、別途記事にします。今回は、自動化の方法を記載します。
送信メールと受信メールにラベルを付けます。 Gmail にはフィルター機能がありますので受信した時送信した時にユニークなラベル名をつけてください。
またこのラベル名をもとにまとめる作業を行いますので、分かりやすくしておくと良いでしょう。
特定ラベルのメールの件名と送信受信時間を Google スプレッドシートにまとめます。
新しく Google スプレッドシートを作成し、1列目に時間、2列目にメールの件名が入るように雛形を作成します。
ツールメニューの中のスクリプトエディタを選択します。
以下のコードを貼り付けます。このコードはその月の1日から30日までのメールの件名と時間をスプレッドシートにまとめるプログラムです。
function writeGmailToSpreadSheet() {
var date = new Date();
date.setDate(1); //起動した日付の1日を取得
var row = 2; // 1行目はヘッダ用のため、2行目から
//シートを選択
var sheet = SpreadsheetApp.getActiveSheet();
//該当日の1日から今日(30日)までの情報を取得
var searchQuery = label:zapier after:${Utilities.formatDate(date, 'JST', 'yyyy/M/d')}
;
var threads = GmailApp.search(searchQuery);
for(var n in threads){
var thread = threads[n];
var msgs = thread.getMessages();
for(m in msgs){
var msg = msgs[m];
var maildate = msg.getDate();
var subject = msg.getSubject();
sheet.getRange(row,1).setValue(Utilities.formatDate(maildate, 'Asia/Tokyo', 'yyyy-MM-dd HH:mm:ss'));
sheet.getRange(row,2).setValue(subject);
row++;
}
}
}
上記プログラムを入力した後、毎月30日に自動実行するよう、時間実行を指定しますプログラム画面の時計のマーク(トリガー)をクリックし以下のように設定します。
時間や日付などはお好みで設定してください。ただし上記のプログラムは1日から実行した日までのメールの件名を取得しますので、毎月30日に設定すると良いかと思います。
上記プログラムが自動で実行された後別プログラムで特定の担当者に自動でメールを送ります。メールの文章もあらかじめしまっており、 Google スプレッドシートの表も共有する形で見れるように設定しておきましょう。
メールの送信方法については別途記事にしたいと思います。
いかがだったでしょうか。
Gmail と Google の各種オフィスアプリを使うことで意外とたくさんのことが自動化できることを発見しています。
是非毎月行っている面倒な作業を自動化して、空いた時間を有効に活用したいですね。
[itemlink post_id=”2050″]