【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】へと書き換えます。 こうしておくと、毎月コードを書き変えなくてもメールの送信が出来ます。 あとはこのコードを以前に行ったトリガーを使って自動化すれば毎回メールを作成し、送信する作業を自動化することが出来ます。 このコードを実行してみると mail2 無事にメールが来ましたね。開くと内容はこの様になっています。 mail1 ファイル名とシート名がちゃんと編集中のものになっていますね。改行もされています。 これで自動メール送信が完成です。 色々応用がききますので、便利に使って下さい!!

LINEをつかって友達や家族にこの記事を教える

シェアボタン

お問い合わせ

エンプロスの職業訓練についてご不明な方は、まずは学科・コース入校から就職までよくある質問をご覧ください。

  • 職業訓練のエンプロスについて、ご質問ご不明点などございましたら、下記のお問い合わせフォームからお問い合わせください。お問い合わせについては、2営業日以内にご返答いたします。

    お問い合わせフォーム
  • 営業時間
    8:50〜18:00
    定休日
    土日祝
    TEL
    079-287-1000