【GAS】GoogleAppsScriptでGmailに下書きを作成する

Gmail

Gmailのテンプレートで、面倒くさいな~と思ったことありませんか?

テンプレート選択までステップが多いですし、TOやCCを設定できないので私はとても嫌いです。

もっと便利にならないかな、と思い、GASを使ってスプレッドシートにスクリプトを作成してみました。

TOやCCはもちろん、ボタン一つで下書きが作成出来たり、関数を使って日付を自動取得したりといいことだらけだったので共有させていただきます!

 

 

GASを使ってスプレッドシートからGmailの下書きを作成する

こちらの動画が、下書きを作成するまでの一連になります。

  1. 作成する下書きの件名を選択する
  2. 実行ボタンを押下する
  3. Gmailを開くと下書きが作成されている

スプレッドシートのフォーマット作成から、GASのコード説明まで一つずつ解説していきます。

また、スプレッドシートとGASを一式欲しい!という方は、一番下にリンクを貼りますので、コピーしてご自由にご利用ください。

それでは解説していきます。

 

 

スプレッドシートのフォーマットとスクリプト

まずは、スプレッドシートのフォーマットについて説明していきます。

見た目はおシャンティなセンスで編集していただいて構いません。

 

スプレッドシートのフォーマット①TO、CC、件名、本文

■TO、CC

  • B3セルにTO、B4セルにCCを記載します。

複数のアドレスを記載する時は、「,」(半角カンマ)で区切れば大丈夫です。

TO・CCの準備はこれで以上です!

 

■件名

=CONCATENATE(“【日報1】名前_” & TEXT(TODAY(), “yyyymmdd”))

当日の日付を記載したい場合は、「TEXT(TODAY(), “yyyymmdd”)」20200715のような、8桁の日付を取得することができます。

 

■本文

=CONCATENATE(“師匠

お疲れ様です。” & TEXT(TODAY(), “m月dd日(ddd)”) & “の日報を報告いたします。

■今日の学び
年月日の表示方法いろいろ
・yyyy/mm/dd(ddd): ” & TEXT(TODAY(), “yyyy/mm/dd(ddd)”) , “
・yy/m/d dddd: ” & TEXT(TODAY(), “yy/m/d dddd”) , “
・mmm: ” & TEXT(TODAY(), “mmm”) , “

・昨日の日付: ” & TEXT(TODAY()-1, “m/dd(ddd)”) , “
・明日の日付: ” & TEXT(TODAY()+1, “m/dd(ddd)”) , “
・当月の月初: ” & TEXT(EOMONTH(TODAY(),-1)+1, “m/dd(ddd)”) , “
・当月の月末: ” & TEXT(EOMONTH(TODAY(),0), “m/dd(ddd)”) , “
・翌月の月初: ” & TEXT(EOMONTH(TODAY(),0)+1, “m/dd(ddd)”) , “
・翌月の月末: ” & TEXT(EOMONTH(TODAY(),1), “m/dd(ddd)”), “

■所感
日付、曜日の記載が自動だと間違いも減って便利!

以上”)

日付の取得にはいろいろ方法がありますが、たいていのことは上記のコードで取得できます(笑)

 

スプレッドシートのフォーマット②プルダウン

  1. A1~C1のセルを結合
  2. 結合したセルを右クリック
  3. 「データ入力規則」を選択
  4. 「条件」の右側にある範囲を選択
    ※「Subject」の範囲を選択
  5. 「無効なデータの場合」を「入力を拒否」に設定
  6. 保存を選択

この設定で、プルダウンから「Subject」を選択することが可能になります。

 

スプレッドシートのフォーマット③ボタン

■ボタンのオブジェクト作成

まずは、スプレッドシートにボタンを作成していきます。

  1. 挿入タブを選択
  2. 「図形描画」を選択
  3. 不思議なマーク(図形)を選択
  4. 「図形」を選択
    ※ボタンっぽいやつがボタンです(笑)
  5. オブジェクトが作成されたら、実行ボタンを命名
  6. 保存して終了

 

■ボタンのスクリプトを割り当て※スクリプトの作成後に実施

続いて、作成したボタンとスクリプトを連動させます。

スクリプトがまだ作成できていない場合は、一度目を通していただき、スクリプト作成後に設定してください。

  1. 作成したボタンを右クリック
  2. 「スクリプトを割り当て」を選択
  3. 作成したスクリプトを記載しOKボタンをクリック

これでボタン回りの準備は完了です。

 

スクリプトに記載するコード

//==================================
// Gmailの下書きを作成する
//==================================

function createDraft() {

//シートのデータを二次元配列として取得する
const SheetValues = SpreadsheetApp.getActiveSheet().getDataRange().getValues();

//[A1セル]の値(選択した件名)を取得する
const SelectSubject = SheetValues[0][0];

//二次元配列を使って、[A1セル]の値と一致する値をSubject行から検索し、それが何列目か取得する
var col = SheetValues[4].indexOf(SelectSubject);

//メールの詳細を取得する
const To = SheetValues[2][col]; //Toのメールアドレス
const Cc = SheetValues[3][col]; //Ccのメールアドレス
const Subject = SheetValues[4][col]; //メッセージの件名
let Body = SheetValues[5][col]; //メッセージの本文

//オプションでCcを指定する
var Options = {
cc: Cc
}

//下書きを生成する
GmailApp.createDraft(To, Subject, Body, Options);
}

このコードを、スプレッドシートのツールタブから「スクリプトエディタ」を起動し、張り付けます。

そして、待ちに待った「ボタンのスクリプトを割り当て」を設定すれば、Gmailの下書きをボタン1つで実行することができます。

 

 

【実行結果】スプレッドシートからGmailに下書きを作成する

最初の動画にもあったように、スプレッドシートの「下書き作成実行」ボタンを押下することで、Gmailの下書きを作成できました。

注意事項として、同じ件名のテンプレートは作成できないという問題がありますが、そんな下書き必要ないですよね(笑)

以上で、スプレッドシート・スクリプトの解説を終了いたします!

 

 

スプレッドシートとGASの一式ダウンロード

ここまで説明に使用していた、スプレッドシートとGASを一式欲しい!という方は、以下のリンクからご自由にご利用ください。

■ダウンロードの方法

  1. ファイルタブを選択
  2. 「コピーを作成」を選択
  3. 名前と保存先を指定しOKをクリック
001_GmailDraftingTool
sheet 【日報1】名前_20200715 To,SAMPLE1@gmail.com,SAMPLE1@gmail.com,SAMPLE2@gmail.com Cc,SAMPLE2@gmail.com,SAMPLE3@gmail.com Subject,【日報1】名前_20200715,【日報2】名前_2020071...

 

ちなみに、スクリプト実行時に承認を求められます。

「承認ってなんじゃい!」というかたは、こちらの記事を参考にしてください。

【GAS】GoogleAppsScriptで新規のスクリプトを実行する手順
GASを作成した時に出てくる「承認」についてご説明します。どんな場面で必要か、そもそも承認ってなにを承認しているのかという疑問を解決いたします。

 

 

まとめ

Gmailの下書きは、GAS利用一択ではないでしょうか。複製も簡単ですし、手をかければ、赤字などの装飾もできるはずです。

まだやったことがないので、無事に作成できた暁には、共有いたします!

最後までありがとうございました。

 

コメント

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