連載
» 2018年10月22日 05時00分 公開

一から作ると面倒な日報メール――GASで実現する半自動化術とは働く価値を上げる“VBA/GAS”術(12)(2/3 ページ)

[高橋宣成,プランノーツ]

日報メールの自動作成スクリプト

 下記は、スプレッドシートの情報を基に、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の下書きフォルダ内に作成できます。

図3 GASで作成したメール下書き

 下記が、スクリプトの大まかな処理の流れです。

  1. スプレッドシートの取得
  2. 「レポート」シートのデータ範囲の値を2次元配列で取得
  3. 取得した2次元配列から、メッセージ本文に挿入するレポート部分の文字列を生成
  4. 「フォーマット」シートのデータ範囲の値を2次元配列で取得
  5. 取得した2次元配列とレポート部分の文字列から、送信先アドレス、件名、本文を取得および生成
  6. 送信先アドレス、件名、本文を基にGmailに下書きを作成

 いずれのシートもデータ数は多くないので、2次元配列を使わずに都度シートを読み書きする処理の作り方をしても、実行速度はあまり遅くならないでしょう。しかし、このようなライトな題材であれば、初心者でも容易に配列処理を作れます。これを機に配列の操作方法について慣れていきましょう。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。