見出し画像

[Google Apps Script]スプレットシートを参照してGmail下書きを作成する・ケース1

 大量のメールを送る作業において役に立つ自動化。GoogleスプレットシートとGmailを連携させるスクリプトを作りました。

 スプレットシートにメール内容を記載しておき、ボタンを押すと指定した件数のGmail下書きが作成される、というもの。
 今回の例では、宛先メールアドレスは個人情報保護の観点で別システムにある(システム連携できない)、宛先は手入力をしたい状況を想定しています。

【完成イメージ】

スプレットシートの例
画像2
自動作成されたGmail下書きの一覧
画像3
自動作成されたGmail下書きの内容

【やりたいこと】
・指定した件数だけ、同じ文面のGmail下書きを作成したい
・自動処理はスプレットシート上のボタンを押すだけの簡単操作が良い
・下書き作成する件数を数値で指定したい
・メール本文は特定箇所を強調(文字を大きく、色付け)したい
・送信メールには特定のメールアドレスをCCに入れて同報したい

【前提知識】最低限、下記を知っているのが望ましいです
スプレットシートのセルの数え方、配列変数の数え方
スプレットシートにボタンを配置してクリック時の機能を持たせる
htmlのタグによる文章の編集方法
※各リンク先をご参照下さい

【スクリプト例】

function createDraftMessage() {
  let ssa = SpreadsheetApp.getActiveSpreadsheet();
  let sheet = ssa.getActiveSheet();
  let range = sheet.getDataRange();
  let data = range.getValues();

  for(let i = 0; i<data[0][1]; i++){
    let recipient = "enteremail@example.co.jp"
    let subject = data[1][1]
    let body = data[2][1]
    let options ={
      "cc":data[3][1],
      "htmlBody":body,
    };
    
    GmailApp.createDraft(recipient,subject,body,options)
  };

}

【ざっくり解説】
1行目:関数を宣言する
2行目:アクティブ(開いている)スプレットシートを指定する
3行目:アクティブなスプレットシートのシートを指定する
4行目:指定したシートに入力されいるデータ範囲を指定する
5行目:指定したデータ範囲のデータを取得する
   各セルの値をdata[行番号][列番号]という変数に入れる
7行目:指定したメール件数の回数だけ、8〜16行目を繰り返す
   結果、指定した件数のGmail下書きが作成される
8行目:"recipient"という変数に宛先メールアドレスを入れる
   今回、宛先メールアドレスは手入力したい。
   だけど自動化する上で空にできないので存在しないメールアドレスを仮で入れる
9行目:"subject"という変数にメールの件名を入れる
   スプレットシートのセルB2の内容が変数"data[1][1]"に入っている
10行目:"body"という変数にメールの本文を入れる
   スプレットシートのセルB3の内容が変数"data[2][1]"に入っている
11行目:"options"という変数でメールのその他要素を入れる
   今回、CCに入れるメールアドレス、メール本文がhtml形式である指定を行なっている
12行目:CCに入れるメールアドレスがスプレットシートのセルB4にあることを指定している。この内容が変数"data[3][1]"に入っている。
13行目:メール本文がhtml形式であることを指定している
16行目:8行目〜13行目の条件でGmail下書きを作成する

この記事が気に入ったらサポートをしてみませんか?