定型メール作成を GAS で自動化すると業務がちょい捗る


はじめに

_s__o_ です。

定型メール、作成していますでしょうか。日報、週報、進捗報告、etc etc...。色々あると思います。月次程度ならまだ手動で何とかなるかもしれませんが、週次・日次となると地味に時間がかかります。

Thunderbird などであれば「このメールをもとに新しいメールを作成」的な機能で、メールを複製可能です。しかし、残念ながら Gmail ではそのような機能は備えていません。そのため、毎回 To や Cc や本文などをせっせとコピペする必要があります。こういった作業は単純に時間を要するだけでなく、手作業によるミスを誘発します。特にメール宛先に関しては、メール誤送信の温床になり得ます。

上記のような背景から、作業時間短縮 & 作業品質向上の目的で、定型メール作成を GAS で自動化したいと思います。

入出力イメージ

入力 (スプレッドシート)

定型文をスプレッドシートで作成します。可変内容 (日にちなど) に関しては、関数で自動更新されるようにします。

出力 (Gmail 下書き)

出力は下書きまでに留めます。最終的に送信するか否かは、人間が中身をしっかりとチェックして、判断する必要があります。

コード

全文

とりあえず手動実行前提のため、非常にシンプルです。
```
function createDraft() {
  const values = SpreadsheetApp.getActiveSheet().getDataRange().getValues();
  const to = values[0][2];
  const cc = values[1][2];
  const bcc = values[2][2];
  const subject = values[3][2];
  let body = '';
  body += values[4][2] + '\n\n';
  body += values[5][2] + '\n\n';
  body += values[6][2] + '\n\n';
  body += values[7][2];

  GmailApp.createDraft(to, subject, body, {
    cc : cc,
    bcc : bcc
  });
}

// 関数を実行するメニューを追加
function onOpen() {
  var ui = SpreadsheetApp.getUi();
  var menu = ui.createMenu('マクロ実行');
  menu.addItem('メール下書き作成', 'createDraft');
  menu.addToUi();
}
```

解説

function createDraft()

メール下書き作成用の関数です。単純に、アクティブシートの特定セル値を取得しているだけです。最後に「GmailApp.createDraft()」で、取得した値をもとにメール下書きを作成しています。

function onOpen()

手動実行用の関数です。この関数を仕込んでおくと、スプレッドシートを開いたタイミングで、メニューバーにアイテムが追加されます。このアイテムを選択して、上記の「createDraft()」を手動実行します。メニューバーに追加されているイメージは、下記の通りです。

まとめ

以上、簡単ですが、定型メール作成を GAS で自動化する方法でした。

今回は手動実行前提の方法でしたが、GAS の実行トリガーとうまく組み合わせれば、日次・週次でメール下書きを自動作成させることも可能かと思います。