友達と飲んでた時に「社で在庫管理がヤバくって、こっちでエクセルで管理してるけどなんか不便やねんなぁ…。どないかならんか。」と聞かれたのでスプレッドシートでやればよいんじゃね?となってやった話をします。
#前提条件
・Python,Rは触ったことあるものの、GAS全く分からん。
・ググり力を信じて頑張る。
・諸諸の設定は無視する。
・「在庫数とかはこっちで聞き取って手打ち。マジでエクセルにベタうちしてるだけ。」
#最初にやったこと
・SpreadSheetを作って送り付ける。
→気を付けたこととしては一応在庫の%表示して条件式突っ込んで色付けた。
#相手からの返答
・これめっちゃええんやけども、在庫数やばくなったとき通知とか来たら嬉しいんやけど…。どないかならんか。
#本題
SpreadSheetの在庫の%の項目が50%切ってたらメールを送る。
function myFunction() {
var sheet = SpreadsheetApp.getActiveSheet();
var lastRow = sheet.getLastRow();
for (var i=2; i<=lastRow; i++) {
total = sheet.getRange(i, 5).getValue()
if (total >= 0.3) {
MailApp.sendEmail('(メアド)', '在庫のお知らせテストです。', '在庫が少なくなっています。注文お願いします。');
break;
}
}
}
E2セルに在庫率を持ってて、そこの値で通知がいくようにしました。あとはもっといい方法ある気がするけど良かったですね。あとはイベントトリガーでセルの更新でFin.
#蛇足
・最初ifから抜けるbreak;忘れてて只の激やばメール送信Botになった。
・列方向の操作がちょっと難しかった。
・作成にかかったのSpreadSheetから大体3時間くらい。
・無駄なコードがある気がするけどどうなんか知りたいのでコメントください。
#参考
メールの送信方法: GASでのメール送信についてまとめてみる