見出し画像

スプレッドシートで管理してる状況の報告のメールを自動で送る

では、本日もGASを使ってファムテックしていきましょう!

Googleの提供するGASは無料で使用できます。ツールをメーカーから購入するだけでなく、世の中にある低価(無料)のツールを組み合わせるなどして薬局業務の革新をすることをファムテック(PharmTech)と呼びます。

皆さんも、是非ファムテックを学び、薬局業務を楽しく革新していきましょう(^^)/

集計した状態をまとめる

では、過去の記事で業務の集計を行うところまではできました。さらに、患者名の抽出まで行いました。せっかくなので、集計した内容をそのまま自動で通知してみるのはどうでしょうか?

画像1

患者さんの管理シートはこちら。

現在、鑑査の終わっていない患者さんについて集計することはできましたので、そのまま自動で通知までしてもらいましょう!

function myFunction() {
 const ss = SpreadsheetApp.getActiveSpreadsheet();
 const sheet = ss.getActiveSheet();
 const checkBoxs = sheet.getRange(2,4,5,1).getValues();
 const names = [];
 for ( let i = 0; i<5 ; i++){
   if(checkBoxs[i][0] == false ){
     const name = sheet.getRange(i+2,1).getValue();
     names.push(name);
   }
 }
 console.log(names);
}

まずは、ここまで。

なにやら、pushなるものが出てきました。集計を報告するときに便利なpushです。

覚えておくと便利なので簡単に解説すると、nameとして出てきた結果について、何も処理をしなければForによって上書きされます。そうならないように、その都度pushを使用して、namesの[]の中に要素としてドンドン送り込んでいきます。任意の配列を作る時に便利な方法です。

実際に、こちらを実行したログを見てみます。

画像2

DとEがしっかりと抽出されています。しかも、一度のログにまとまっています。

一見、pushなど使用せずに都度ログを出力する方法が簡単に思えるかもしれませんが、後々に活きてきます。ですから、このままpushを使用していきたいと思います。

ログを通知するGAS

では、先ほどの集計の結果で作ったログをメールで送ってみましょう!

過去の記事:GASでメールを自動作成するを参考にして、メールを作ってみました。

function myFunction() {
 const ss = SpreadsheetApp.getActiveSpreadsheet();
 const sheet = ss.getActiveSheet();
 const checkBoxs = sheet.getRange(2,4,5,1).getValues();
 const names = [];
 for ( let i = 0; i<5 ; i++){
   if(checkBoxs[i][0] == false ){
     const name = sheet.getRange(i+2,1).getValue();
     names.push(name);
   }
 }
 GmailApp.createDraft("test@example.com", "未鑑査の一覧", "鑑査が終わっていない患者さんの集計を行いました。\n\n未鑑査患者さんの名前一覧:"+names);
}

こちらを実行すると、下書きができました!

画像3

今回は、creatDraft()を使用していますが、しっかりとコードが書けるようになったらsendEmailに置き換えて、下書きの確認と送信作業も省略して効率化しましょう!

おわりに

いかがでしたでしょうか?GASの醍醐味は、Appを飛び越えて一連の作業を自動化できるところにあります。

もしあの作業が、スプレッドシートで管理出来たら。ドキュメントの文章がスプレッドシートを開くだけで作成出来たら。FAX送信をスプレッドシートでできたら・・・。おっと、言いすぎました。笑

まだまだ、GASで薬局業務を効率化していきましょう!

では、また!!

この記事が気に入ったらサポートをしてみませんか?