自動メールを送信
例えば、このような顧客表があったとして、、、
![](https://eguweb.jp/wp-content/uploads/20190712224850-1.jpg)
『状態』を完了に変更した時に、「完了しました」の自動メールを送信させる方法です。
スクリプトエディタ
「ツール」>「スクリプトエディタ」を開きます。
![](https://eguweb.jp/wp-content/uploads/20190712225958.jpg)
B列が「完了」に変わった時に「onChangeStatus()」を動かすようなスクリプトを準備します。
![](https://eguweb.jp/wp-content/uploads/20190712230137-1024x429.jpg)
まずは、下記のような流れを作ります。
.rangeでセル範囲を取得(cellに格納)
.valueで値を取得(statusに格納)
.getSheet()でシート名を取得(sheetに格納)
.getColumn()で列を取得 (columnに格納)
.getRow()で行を取得 (rowに格納)
.getLastRow()で最終行を取得 (lastrowに格納)
次のif分で、
「2列目かつ2行目以上最終行以下かつステータスが「完了」となっている場合にsendEmail()を実行(メールを送信する)」
という流れを作ります。
![](https://eguweb.jp/wp-content/uploads/20190712235649.jpg)
この「2列目かつ、」が無いと、どのセルを編集していてもメールが送信されてしまうことになるので、大量のメールが送信されることになります。
条件式の確認は・・・慎重さが必要です。気を付けましょう。
var FIELDS の定義
・アクティブシートのデータ全体を二次元配列に格納。データを取り出す
・メールの送信先アドレス、件名、本文を文字列として生成
・メールの作成および送信
![](https://eguweb.jp/wp-content/uploads/201907130958-00.jpg)
これで、B列が「完了」になったら、下記のようなメールが自動で届くようになります。
![](https://eguweb.jp/wp-content/uploads/20190712225216-2-1.jpg)
まとめ
手動でメール送信でも良いのですが、セルが変わった瞬間にメールが自動送信される、というのは便利ですし、毎回同じようなメールを送る、ということであれば、間違いが少なくなるかと思います。
ちょっとしたスクリプトですが、きっと業務効率化に役立つかと思います!
便利ですのでお試し下さい♪