連載
一から作ると面倒な日報メール――GASで実現する半自動化術とは:働く価値を上げる“VBA/GAS”術(12)(2/3 ページ)
毎日のように同じようなフォーマットで、一からメールを作成するのは、面倒くさい作業です。今回は、スプレッドシートとGASを活用した日報メールの作成術を紹介します。
日報メールの自動作成スクリプト
下記は、スプレッドシートの情報を基に、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次元配列で取得
- 取得した2次元配列から、メッセージ本文に挿入するレポート部分の文字列を生成
- 「フォーマット」シートのデータ範囲の値を2次元配列で取得
- 取得した2次元配列とレポート部分の文字列から、送信先アドレス、件名、本文を取得および生成
- 送信先アドレス、件名、本文を基にGmailに下書きを作成
いずれのシートもデータ数は多くないので、2次元配列を使わずに都度シートを読み書きする処理の作り方をしても、実行速度はあまり遅くならないでしょう。しかし、このようなライトな題材であれば、初心者でも容易に配列処理を作れます。これを機に配列の操作方法について慣れていきましょう。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 日報メールを半自動化!?――ExcelとVBAで作成するメール作成マクロとは
時間のかかる業務の代表「メール作成」。中には、定期的かつ毎回同じようなフォーマットで作成、送信するメールもあるのではないでしょうか。今回は、日報を例に、Excelに記入したことを基にメールを作成するVBAを紹介します。 - 6分の壁をどう乗り越える?――「配列」を使ったGASのデータ集約スクリプトとは
GASは「1実行当たり6分」までという制限がある。処理するデータが増えると途中でスクリプトが止まってしまう可能性がある。今回は、過去に作成した「バラバラのデータを1箇所に集約する」スクリプトの処理を高速化する秘訣を紹介する。 - コピー&ペーストの繰り返しから脱却! GASでバラバラのデータを1箇所に集約
1つ1つファイルを開いてコピー&ペースト。バラバラのデータを1箇所に集約することは非常に手間のかかる業務です。今回は、そのような業務を、GAS(Google Apps Script)を使って自動化する方法を紹介します。