Power Automate Desktopで毎週の定例指示を自動化

私は北海道で小売業の最前線で働いております。
主な業務内容は従業員と商品にスポットをあて組織を成果に導くことです。


食品小売業、中でも生鮮食品（野菜果実・水産物・畜産物）は極めて特殊です。
生鮮食品の特売品は仮に在庫が残って仕入れ売価よりも高い売価で販売する場合は
「値上げ処理」という作業が必要になります。
整合性を保つためにも会社からは最低週一回の計上を求められています。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3467884/53073fe7-53f0-1283-d232-cdf05d5157f7.jpeg" width=50%>

:::note info
忙しい現場では週一回の計上が忘れがちになってしまうため
口頭で伝達をしていますが
Power Automate Deskutopを使用してメールを自動送信することで
計上の抜け漏れの回避と一括での情報共有を実践します
:::




## 目次
[1.完成したものを動画にしてみました](#完成したものを動画にしてみました)
[2.使用したツール](#使用したツール)
[3.Power Automate Desktopのフロー](#PowerAutomateDesktopのフロー)
[4.同僚からのレビュー](#同僚からのレビュー)
[5.あとがき](#あとがき)

## 完成したものを動画にしてみました
Power Automate Desktopのフローの稼働状況とメールの送受信を動画にしてまとめています。




https://twitter.com/takefuji1252151/status/1685663536578723840


## 使用したツール
・<font color="green">Power Automate Desktop</font>
・<font color="red">Microsoft Excel</font>
・<font color="blue">Outlook</font>

## Power Automate Desktopのフロー

![スクリーンショット 2023-07-30 184532.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3467884/3c98a7f8-d5ea-8d71-ee8e-cf934aee2144.png)
![スクリーンショット 2023-07-30 184545.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3467884/802edfc9-81c6-1082-a956-488aaa5b8797.png)

<details>
<summary>「フローの<font color="red">ソースコード（Robin）</font>」はこちら</summary>

Display.ShowMessageDialog.ShowMessage Title: $'''今週の黒売変''' Icon: Display.Icon.None Buttons: Display.Buttons.OK DefaultButton: Display.DefaultButton.Button1 IsTopMost: False ButtonPressed=> ButtonPressed
SWITCH $'''ButtonPressed'''
    CASE = $'''Yes'''
        DateTime.GetCurrentDateTime.Current DateTimeFormat: DateTime.DateTimeFormat.DateAndTime Offset: $'''Asia/Tokyo''' CurrentDateTime=> CurrentDateTime
        Excel.LaunchExcel.LaunchAndOpenUnderExistingProcess Path: $'''C:\\Users\\takef\\OneDrive\\デスクトップ\\黒売変定型文.xlsx''' Visible: True ReadOnly: False Instance=> ExcelInstance
        Excel.SetActiveWorksheet.ActivateWorksheetByName Instance: ExcelInstance Name: $'''本文（計上依頼）'''
        Excel.WriteToExcel.WriteCell Instance: ExcelInstance Value: $''' CurrentDateTime''' Column: $'''C''' Row: 4
        Outlook.Launch Instance=> OutlookInstance
        Excel.SetActiveWorksheet.ActivateWorksheetByName Instance: ExcelInstance Name: $'''本文（計上依頼）'''
        Excel.ReadFromExcel.ReadCell Instance: ExcelInstance StartColumn: $'''C''' StartRow: 10 ReadAsText: False CellValue=> ExcelData5
        Excel.ReadFromExcel.ReadCell Instance: ExcelInstance StartColumn: $'''C''' StartRow: 11 ReadAsText: False CellValue=> ExcelData6
        Excel.ReadFromExcel.ReadCell Instance: ExcelInstance StartColumn: $'''C''' StartRow: 12 ReadAsText: False CellValue=> ExcelData7
        Excel.ReadFromExcel.ReadCell Instance: ExcelInstance StartColumn: $'''C''' StartRow: 13 ReadAsText: False CellValue=> ExcelData8
        Excel.ReadFromExcel.ReadCell Instance: ExcelInstance StartColumn: $'''C''' StartRow: 14 ReadAsText: False CellValue=> ExcelData9
        Excel.ReadFromExcel.ReadCell Instance: ExcelInstance StartColumn: $'''C''' StartRow: 15 ReadAsText: False CellValue=> ExcelData10
        Excel.ReadFromExcel.ReadCell Instance: ExcelInstance StartColumn: $'''C''' StartRow: 16 ReadAsText: False CellValue=> ExcelData11
        Excel.ReadFromExcel.ReadCell Instance: ExcelInstance StartColumn: $'''C''' StartRow: 17 ReadAsText: False CellValue=> ExcelData12
        Excel.ReadFromExcel.ReadCell Instance: ExcelInstance StartColumn: $'''C''' StartRow: 18 ReadAsText: False CellValue=> ExcelData13
        Excel.ReadFromExcel.ReadCell Instance: ExcelInstance StartColumn: $'''C''' StartRow: 19 ReadAsText: False CellValue=> ExcelData14
        Excel.ReadFromExcel.ReadCell Instance: ExcelInstance StartColumn: $'''C''' StartRow: 20 ReadAsText: False CellValue=> ExcelData15
        Excel.ReadFromExcel.ReadCell Instance: ExcelInstance StartColumn: $'''C''' StartRow: 21 ReadAsText: False CellValue=> ExcelData16
        Excel.ReadFromExcel.ReadCell Instance: ExcelInstance StartColumn: $'''C''' StartRow: 22 ReadAsText: False CellValue=> ExcelData17
        Excel.ReadFromExcel.ReadCell Instance: ExcelInstance StartColumn: $'''C''' StartRow: 23 ReadAsText: False CellValue=> ExcelData18
        Excel.ReadFromExcel.ReadCell Instance: ExcelInstance StartColumn: $'''C''' StartRow: 24 ReadAsText: False CellValue=> ExcelData19
        Excel.ReadFromExcel.ReadCell Instance: ExcelInstance StartColumn: $'''C''' StartRow: 25 ReadAsText: False CellValue=> ExcelData20
        Excel.ReadFromExcel.ReadCell Instance: ExcelInstance StartColumn: $'''C''' StartRow: 26 ReadAsText: False CellValue=> ExcelData21
        Excel.ReadFromExcel.ReadCell Instance: ExcelInstance StartColumn: $'''C''' StartRow: 27 ReadAsText: False CellValue=> ExcelData22
        Excel.ReadFromExcel.ReadCell Instance: ExcelInstance StartColumn: $'''C''' StartRow: 28 ReadAsText: False CellValue=> ExcelData23
        Excel.ReadFromExcel.ReadCell Instance: ExcelInstance StartColumn: $'''C''' StartRow: 29 ReadAsText: False CellValue=> ExcelData24
        Excel.ReadFromExcel.ReadCell Instance: ExcelInstance StartColumn: $'''C''' StartRow: 30 ReadAsText: False CellValue=> ExcelData25
        Outlook.SendEmailThroughOutlook.SendEmail Instance: OutlookInstance Account: $'''takefuji3598@outlook.jp''' SendTo: $'''takefuji3598@gmail.com''' Subject: $'''今週の黒売変''' IsBodyHtml: False
    CASE = $'''No'''
        Display.ShowMessageDialog.ShowMessage Title: $'''確認''' Message: $'''終了''' Icon: Display.Icon.None Buttons: Display.Buttons.OK DefaultButton: Display.DefaultButton.Button1 IsTopMost: False ButtonPressed=> ButtonPressed2
END</div></details>

**つまづき**
![スクリーンショット 2023-07-29 212538.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3467884/f281cc42-e531-4366-f1bf-564e123aca0f.png)
画像のようにExcelを閉じるアクションで保存が出来ないエラーが発生、しばし悩んだが
どうやっても解決できないのでスルーすることにします。
お尻につけた3工程を全カットします、焦点はExcelが保存できるかではなく
メールが送れるかなので気にせずいきましょう。

**Excelの中身**
![スクリーンショット 2023-07-30 193955.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3467884/ac060584-1b7e-b174-538d-54a5cdb55305.png)

**無事にメールが届きました**
![スクリーンショット 2023-07-30 184729.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3467884/014925ba-6ca2-72a4-acd5-468af1dbecbf.png)


## 同僚からのレビュー

今回のメールの自動送信を同僚で住居余暇課長のF原さんに使用してもらいレビューを求めます。

私：「毎週ミーティングとかで伝えている計上の依頼だけどメールで
自動送信する仕組みを作ってみたんですけど、ちょっと使ってみて
もらって良いですか？
Excelの内容を書き換えて起動するだけでメールが流れます
これだと伝達忘れも無くなるし私も一発でコミュニケーションが
済むので時短にもなります、受け取る側も記録として残るから
抜け漏れも無くなりませんかね～？？」

忌憚なき意見をくださいっ！

【良かった点】
＊課長の業務は軽減される
【改良した方が良い点】
＊そのメールから実際に計上作業へと遷移できるようにした方が良い（URLなど）
＊計上作業の根拠となるメール送信時点でのグループ毎の数値状況も併せて確認出来ると良い
＊課長にとっては便利だが従業員にとっては機能に乏しい
【悪かった点】
＊メールが来てもやらない人はやらないので抜け漏れなどは変わらないと思う
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3467884/04bedb88-03ac-4a33-65fe-c01575cb58db.jpeg" width=50%>

F原さん愛あるレビューありがとうございます、使う側の観点で指摘していただき気づきが
ありました！自分の業務効率は若干改善出来るかもしれませんが現場の業務は何も変わらない
という指摘は目から鱗でした・・・カチコチに凝り固まった自分の脳よ・・・ガンバレ

**参考文献**

https://qiita.com/fsgwmhr/items/d3cd5c7cef94a1b4d713

https://qiita.com/rnakamuramartiny/items/41986eeb0a1422a94849

https://qiita.com/TA6335/items/3bd44200320414f475db

https://youtu.be/XdL6Hz2Nj3M

## あとがき
Power Automate Desktopは出来ることが多く記事を読んでいて発想に広がりが
出ました、送信予約なども出来るので懸案のポスター貼替業務に活かしてみようか・・・

何より今回はF原さんのレビューで目が醒めました、独りよがりではなく
皆が使ってカイゼンを実感出来るツールが必要ですね。