下記は、スプレッドシートの情報を基に、Gmailに下書きを作成するスクリプト「createDraft()」です。なお、このスクリプトは、前述のスプレッドシートにコンテナバインドスクリプトで作成します。
function createDraft() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var reports = ss.getSheetByName('レポート').getDataRange().getValues();
var report = '';
for(var i = 1; i < reports.length; i++){
report += reports[i][0] + '/'; //時間
report += reports[i][1] + '/'; //内容
report += reports[i][2] + '\n'; //進捗・気づき
}
var values = ss.getSheetByName('フォーマット').getDataRange().getValues();
var to = values[1][1];
var subject = values[2][1];
var body = '';
body += values[3][1] + '\n\n';
body += report + '\n';
body += values[4][1];
GmailApp.createDraft(to, subject, body);
}
「createDraft()」を実行すると、下記のような日報メールが実行者のGmailの下書きフォルダ内に作成できます。
下記が、スクリプトの大まかな処理の流れです。
いずれのシートもデータ数は多くないので、2次元配列を使わずに都度シートを読み書きする処理の作り方をしても、実行速度はあまり遅くならないでしょう。しかし、このようなライトな題材であれば、初心者でも容易に配列処理を作れます。これを機に配列の操作方法について慣れていきましょう。
日報メールを半自動化!?――ExcelとVBAで作成するメール作成マクロとは
6分の壁をどう乗り越える?――「配列」を使ったGASのデータ集約スクリプトとは
コピー&ペーストの繰り返しから脱却! GASでバラバラのデータを1箇所に集約Copyright © ITmedia, Inc. All Rights Reserved.