【GAS】スプレッドシートからメールを送信
ビジネススキル
-
- 公開日
-
- 最終更新日
エンプロススタッフ
スプレッドシートからメールを送信する
前回作成した勤務表【シート起動時に自動で新規シートを作成】ですが、毎日コツコツと業務内容や訪問先を入力し、ついに完成!!
早速上司に確認をお願いするメールを作成・・・自動で送ってくれればいいのに・・・
という訳で今回は【スプレッドシートからメールを送信する】機能を追加していきます!!
実はこのメール送信、関数1つで作る事が出来ます。その関数とは
MailApp.sendEmail(宛先,件名,本文)
この宛先、件名、本文の3つの要素があればいいので例えば
MailApp.sendEmail(“t-kobayashi@emplos.biz”,”勤務報告書”,”更新したよー、確認しといてねー。”);
と書いておけば、簡単にメールが送信できます(ドヤァ)。
メール送信関数MailApp.sendMail()
それでは具体的な使い方を説明していきます。今回は以下の様にコードを作成しました。
function sendMail(){
var fileName = SpreadsheetApp.getActive().getName();
var sheetName = SpreadsheetApp.getActiveSheet().getName();
var dAddress = "t-kobayashi@emplos.biz";
var subject = fileName + "について";
var content = "●●部長\nお疲れ様です。小林です。\n";
content += "表題のファイル【" + fileName + "】 内の 【" + sheetName + "】シートを更新しました。\n";
content += "ご確認いただけますようよろしくお願いいたします。";
MailApp.sendEmail(dAddress,subject,content);
}
これをコピーしてもらうとすぐに使うことができます。
説明していきましょう!!
sendMail()関数について
メールの送信自体は関数MailApp.sendMail()の引数部分に3つの要素を入れてあげれば簡単に使用できます。
1つ目・・・送信先の宛先(相手のメールアドレスを入力します。)
2つ目・・・メールの件名(シンプルに内容が分かりやすいものがいいですね!!)
3つ目・・・メールの本文(ビジネスマナーをしっかりと、「更新したよー」とか書いてはいけません。)
以上の様に使い方自体は簡単ですが、例えばこの内容を直接書き込むと
MailApp.sendMail(“t-kobayashi@emplos.biz”,”テストファイルについて”,”○○部長\nお疲れ様です。小林です。\n表題のファイル【テストファイル】内の【勤務報告1月】シートを更新しました。\nご確認いただけますようよろしくお願い致します。”)
・・・長い!!1つの関数でこれは長すぎます!!
ですので3つの要素を一旦変数に代入します。
sendMail()関数をすっきりさせる
先程の書き方では関数内がごちゃごちゃしますので、3つの要素を変数に代入します。
1つ目・・・var dAddress = “t-kobayashi@emplos.biz“;
変数dAddressに宛先のメールアドレスを代入します。
2つ目・・・var subject = “テストファイルについて“;
変数subjectに件名を代入します。
3つ目・・・var content = “○○部長\nお疲れ様です。小林です。\n表題のファイル【テストファイル】内の【勤務報告1月】シートを更新しました。\nご確認いただけますようよろしくお願い致します。“;
変数contentに本文を代入します。
そして関数sendMail()の引数には、変数を代入します。そうすると
MailApp.sendMail(dAddress,subject,content);
関数がすっきりしましたね。
ただし今度は3つ目の変数contentがごちゃごちゃしまう事態に・・・
長文を読みやすくするポイント
今度は読みにくくなってしまった変数contentを変更していきます。
ところで、変数contentの中にちょいちょい「\n」こんな文字が入っているのに気が付かれたでしょうか?
これは改行を意味し、この「\n」の部分で文章が改行されます。
これをしないと文章が一続きになってしまい、読みずらくなってしまうので適度に改行していきましょう。
更に、1行ずつ文章を追加する形にするともっと読みやすくなります。
どんな書き方かというと・・・
var content = “○○部長\n”
content += “お疲れ様です。小林です。\n”
content += “表題のファイル【テストファイル】内の【勤務報告1月】シートを更新しました。\n”
content += “ご確認いただけますようよろしくお願い致します。”;
+=と書くと変数に文章を追加することが出来ます。この例では改行したい部分毎に追加してみました。
さらに使いやすく
この状態でも使うことが出来ますが、本文の【テストファイル】や【勤務報告1月】の部分はメールを送信する度に
内容を書き換える必要があります。
これでは自動とは言い切れません。なので現在開いているファイル名やシート名を自動で取得し、書き換えなくてもいいように変更します。
ファイル名及びシート名の取得
現在開いているファイル名の取得は「SpreadsheetApp.getActive().getName()」この関数で簡単に取得できます。
これを使用し、変数failNameへファイル名を代入しています。
現在開いているシート名も同様に「SpreadsheetApp.getActiveSheet().getName()」この関数で取得できますので、
変数sheetNameへ代入します。
そしてこれを使用し、【テストメール】→【failName】、【勤務報告1月】→【sheetName】へと書き換えます。
こうしておくと、毎月コードを書き変えなくてもメールの送信が出来ます。
あとはこのコードを以前に行った【トリガー】を使って自動化すれば毎回メールを作成し、送信する作業を自動化することが出来ます。
このコードを実行してみると
無事にメールが来ましたね。開くと内容はこの様になっています。
ファイル名とシート名がちゃんと編集中のものになっていますね。改行もされています。
これで自動メール送信が完成です。
色々応用がききますので、便利に使って下さい!!
LINEをつかって友達や家族にこの記事を教える
シェアボタン