見出し画像

【生成AI×GAS】メール件名変更GASの解説③

オレンジピーチのトシです。
前回の記事の続きで、GASを用いてメールの件名を変更しながら、スプレッドシートに記載のメールアドレスリストにGmailを作成・送信するスクリプトの解説を行っていきたいと思います。
(作成したプログラムや、前回の解説はこちらから)


前回のおさらい

解説の対象としているGASがこちらです。
前回の解説で、現在の日時を取得するところまで解説しました。

今回は、件名と本文の中に、取得した値を入れ込む方法を解説したいと思います。

function sendEmail() {
  // スプレッドシートを開く
  var sheet = SpreadsheetApp.getActiveSheet();

  // B列2行目から最終行までのメールアドレスを取得
  var lastRow = sheet.getLastRow();
  var emailRange = sheet.getRange("B2:" + "B" + lastRow);
  var emailList = emailRange.getValues();

  // 現在の日付を取得
  var today = new Date();
  var year = today.getFullYear();
  var month = today.getMonth() + 1; // 月は0始まりなので、+1する

  // 件名と本文を設定
  var subject = `月次進捗ファイル(${year}${month}月度)の更新依頼`;
  var body = "";
  body += "株式会社オレンジピーチ \n";
  body += "\n";
  body += "営業部 青森 太郎 様\n";
  body += "おつかれさまです。\n";
  body += "企画部の橙桃です。\n";
  body += `${year}${month}月度の月次進捗ファイルの更新をお願いいたします。\n`;
  body += "締切は、**7月25日**となります。それまでに、リンクの月次進捗表を更新して下さい。\n";
  body += "\n";
  body += "営業部 青森 月次進捗ファイル\nURL: ********\n";
  body += "\n"
  body += "どうぞよろしくお願いします。";

  // 各メールアドレスにメールを送信
  for (var i = 0; i < emailList.length; i++) {
    var recipient = emailList[i][0];
    MailApp.sendEmail({
      to: recipient,
      subject: subject,
      body: body
    });
  }
}

GASの内容解説③

今回は、件名と本文を設定する箇所を解説します。

 // 件名と本文を設定

 var subject = `月次進捗ファイル(${year}年${month}月度)の更新依頼`;

 var body = "";

 body += "株式会社オレンジピーチ \n";

 body += "\n";

 body += "営業部 青森 太郎 様\n";

 body += "おつかれさまです。\n";

 body += "企画部の橙桃です。\n";

 body += `${year}年${month}月度の月次進捗ファイルの更新をお願いいたします。\n`;

 body += "締切は、**7月25日**となります。それまでに、リンクの月次進捗表を更新して下さい。\n";

 body += "\n";

 body += "営業部 青森 月次進捗ファイル\nURL: ********\n";

 body += "\n"

 body += "どうぞよろしくお願いします。";

件名に、年・月を設定する

今回のGAS修正の前は、件名(変数 subject )は固定の内容でした。
それが修正後のGASには、変数 year や、変数 month が文字列の中に組み込まれているようです。

var subject = "月次進捗ファイル(7月度)の更新依頼";

GAS修正前: 件名が固定の場合

var subject = `月次進捗ファイル(${year}年${month}月度)の更新依頼`;

GAS修正後: 件名に変数を挿入する

より詳しく説明します。

ダブルクォーテーション(”)とバックティック(`)の違い

まず、最初の違いが文字列を囲っている記号の違いです。
固定の文字列の場合は、ダブルクォーテーション(”)で囲まれており、今回はバックティック(`)で囲まれています。

GAS初心者・プログラム初心者の人は、バックティック(`)というコトバ自体が初めてという人もいると思います。
日本語キーボードでは「shift+@」で「`」が入力できます。
バックティックもしくはバッククォートと呼ばれます。

このバックティックで囲まれた文字列は、テンプレート文字列と呼ばれ、文字列の中に式を組み込んだりすることが出来ます。

変数を文字列内に埋め込む

バックテックで囲まれたテンプレート文字列では、ドル記号と波括弧「${ }」という記述によって、変数や定数、任意の式などを文字列内に埋め込むことが出来ます。
つまり「変数 year = 2024」「変数 month = 7 」である場合、
「(${year}年${month}月度)」は「(2024年7月度)」という文字列になります。

var subject = `月次進捗ファイル(${year}年${month}月度)の更新依頼`;
  変数が代入されると
var subject = `月次進捗ファイル(2024年7月度)の更新依頼`;
  という内容になる

本文に、年・月を設定する

本文についても、件名と同じ内容の修正です。
GAS修正の前は、本文(変数 body )は固定の内容を足し加えたものでした。それが修正後のGASには、変数 year や、変数 month が文字列の中に埋め込まれています。具体的には次の内容です。

body += "7月度の月次進捗ファイルの更新をお願いいたします。\n";

GAS修正前: 本文が固定の場合

body += `${year}年${month}月度の月次進捗ファイルの更新をお願いいたします。\n`;

GAS修正後: 本文に変数を挿入する

修正の内容は、件名の同じ手法が用いられています。
これにより、本文中に「変数 year = 2024」「変数 month = 7 」の値が埋め込まれます。

body += `${year}年${month}月度の月次進捗ファイルの更新をお願いいたします。\n`;
   変数が代入されると
body += `2024年7月度の月次進捗ファイルの更新をお願いいたします。\n`;
   という内容になる  

ここまでのまとめ

今回は、件名と本文の中に取得した値を入れ込む方法を解説しました。

変数 year 、変数 month を利用して、件名や本文の内容に変数を埋め込むことが出来ました。
変数や定数、式などを埋め込むことが出来るため、今回のようにGASの中で作り出した変数を入れたり、スプレッドシートやその他の情報から変数を入れたりすることが出来ます。

これにより、Gmailを自動送信するための件名・本文等の記載はいくつもの情報を組み合わせて作り上げることが可能になり活用の幅が広がります。

この記事を読んで頂いたみなさんの中で、GASによるGmailの自動送信について、活用のイメージが膨らんでいたならHappyです。

今回の解説は以上です。最後まで読んで頂き、ありがとうございました。
記事の内容が参考になった方は、「スキ」して頂けると励みになります。


いいなと思ったら応援しよう!

オレンジピーチ★トシ
この記事が少しでもお役に立てたのなら、サポートいただけると嬉しいです。頂いたご支援は、今後の活動費やコンテンツの質向上に使わせていただきます。