第2話 リマインダーメールを送りたい 〜キリン部長からの新たな依頼〜

Google Apps Script

こんにちは、ばばーるです。

スポンサーリンク

前回のおさらい

前回はスクリプトで送れるメールの数を確認する方法をご紹介しました。

  • 無料版だと1日100通、有料版でも1500通しか送れない
  • MailApp.getRemainingDailyQuota();で確認できる
https://ideallifebody.com/2020/12/18/017/(
新しいタブで開く)

今回はキリン部長から新たに仕事の依頼が来ました。

キリン部長からの引き続きの依頼

キリン部長
キリン部長

メールの自動送信ありがとう。
ところで、書類の提出納期のリマインダーメールも自動で送れたりしないかな?

たぬきさん
たぬきさん

できます!
(多分…)

キリン部長
キリン部長

書類管理のスプレッドシートを送るから
ちょっと作ってみてよ。
(なんで毎回自信がなさそうなんだ???)

たぬきさん
たぬきさん

はい!

納期管理のシートの内容

キリン部長が依頼していた自動送信メールに添付されていたスプレッドシートは書類の納期管理のシートでした。

内容はこんな感じです。

たぬきさん
たぬきさん

あいつ。
最初っから納期のリマインダーメール送りたいって言えよ。

GAS
GAS

多重人格!!!

時刻の出力形式

納期管理ということで、スクリプトで時間を読み込む必要があります。提出書類管理シートのD列に時間が記載されいるので、一度スクリプトで読み込んでみましょう。

function reminderEmail() {
  const id = '提出書類管理シートのスプレッドシートID';                            //1行目
  const ss = SpreadsheetApp.openById(id);                                      //2行目
  const sheet = ss.getSheetByName('納期');                                      //3行目
  const submitDate = sheet.getRange(1, 5, sheet.getLastRow(), 1).getValues();  //4行目
  console.log(submitDate);                                                     //5行目
}

ログ出力すると以下のように[曜日 月 日 年 HH:MM:SS 標準時]で出力されます。

たぬきさん
たぬきさん

あれ?
2020/12/27とかで書いてあったのに…。
これスプレッドシートやメールの文章にに貼り付けたら
どう表示されるの?

たぬきさんの疑問を確認してみましょう。
スクリプトの6行目を足して、スプレッドシートに日付を貼り付けてみます。

function reminderEmail() {
  const id = '提出書類管理シートのスプレッドシートID';                               //1行目
  const ss = SpreadsheetApp.openById(id);                                      //2行目
  const sheet = ss.getSheetByName('納期');                                      //3行目
  const submitDate = sheet.getRange(1, 5, sheet.getLastRow(), 1).getValues();  //4行目
  console.log(submitDate);                                                     //5行目
 sheet.getRange(1, 6, sheet.getLastRow(), 1).setValues(submitDate);           //6行目 ← ここ
}

スプレッドシートの出力結果

たぬきさん
たぬきさん

元々の形式で貼り付いた。

今度はメールの本文としてGmailを送信してみます。

function reminderEmail() {
  const id = '提出書類管理シートのスプレッドシートID';                               //1行目
  const ss = SpreadsheetApp.openById(id);                                      //2行目
  const sheet = ss.getSheetByName('納期');                                      //3行目
  const submitDate = sheet.getRange(1, 5, sheet.getLastRow(), 1).getValues();  //4行目
  console.log(submitDate);                                                     //5行目

 const recipient = 'メールアドレス';                                   //6行目 ← ここ
  const subject = 'test';                                                      //7行目 ← ここ
  GmailApp.sendEmail(recipient, subject, submitDate)                           //8行目 ← ここ
}

メール本文への出力結果

たぬきさん
たぬきさん

まさかのそのまんま。

GAS
GAS

たぬきさん安心して。
次回は日付の操作を学んでいこう。

たぬきさん
たぬきさん

その前に全体像を把握させてください。

GAS
GAS

はい。

(急に敬語…。)

まとめ

今回はキリン部長からの納期管理のリマインダーメール作成依頼が来ました。

  • スプレッドシート上の日付を読み込める。
  • 日付の出力形式は曜日 月 日 年 HH:MM:SS 標準時]で出力される。

と説明したところで、たぬきさんが全体像をつかみたいと言っていたので、とりあえず依頼内容をしっかり押さえましょう。

タイトルとURLをコピーしました