PowerAutomateで毎月8時間半の反復作業がゼロに！

![反復作業 なにそれ？.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519202/f61f2cf7-872c-a5f2-4bfb-a4994122f174.jpeg)
# 日々の反復作業をPowerAutomateで楽ちんRPA化！
https://twitter.com/tnsato2000/status/1700698048555618484

# 組織の無駄を調査しろ！
現在、私は10名のチームメンバーと共にEC事業を運営しており、職場環境を改善を目的にデジタルツールを用いて業務効率化に取り組んでいます。そのチームメンバー全員に作業レベルの業務課題のヒアリングを行いました。ヒアリング結果は、でるわでるわで44項目。重たいものから軽微なものまで、中には愚痴も。。。しかし課題解決に向け不可能なものは無いことが確認できました。
ただし、投資や人的リソースも伴うことも多いため、短期長期に整理し解決後インパクトを考え優先順位をつけたうえで、以下の3つにグルーピングしました。

:::note info
**主要課題**
課題①商品メンテナンス作業の工数が多すぎて不効率
**<font color="Red">課題②作業の重複による不効率</font>**
課題③社外システムとの連携がすべてマニュアルで不効率
:::
今回は最も短期的で投資なしで解消できそうな課題②の一部について、PowerAutomate Desktop(以下PAD)を学び作業の自動化(RPA化）に取り組んでみました。
# 目次
[各チームメンバー間でもっとも重複している作業とは？](#各チームメンバー間でもっとも重複している作業とは)
[PowerAutomate Desktopについて](#ここでpowerautomate-desktopについて)
[さっそくフロー構築](#さっそくフロー構築)
[メンバーの感想は？](#メンバーの感想は)
[今後の改良に向け](#今後の改良に向け)

# 各チームメンバー間でもっとも重複している作業とは？


最も重複が多かったのは、**受注実績と出荷実績の取得(ダウンロード)業務**でした。
EC事業は大半の企業が出荷時に売上を計上するケースが多いと思います。弊社も同様です。
そのため、下記のデータを個々にダウンロードしなければならないため、非常に手間です。
**・お客さまからの注文が入った時点の受注データ**
**・出荷後の売上計上された出荷データ**
下記のチャートは、受注⇒出荷の流れを簡素化したものですが、<font color="Red">赤字部分</font>のデータ取得がココに該当します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519202/280477a5-6ab5-3f31-ff56-26a5259b595d.png)

## どれくらい大変な作業なの？
この<font color="Red">赤字部分</font>のデータ取得を**日次・週次・月次**で、関連する**複数の担当者**がそれぞれのタイミングでWebサイトから**同じデータ**をダウンロードし、それぞれの業務用に加工編集して活用しています。
ざっくりしたデータ取得作業のフローは以下のとおりです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519202/a9099cfd-416b-e4bd-cb3a-94c1212676d3.png)
このダウンロードプロセスは結構曲者で、
**・ダウンロード後のCSVファイルはエンコードUTF8をメモ帳で開く
・エンコードをANSIに変換しないと文字化け
・曜日や時間帯でサイトアクセス待機時間も発生　など**


今回、作業工程を洗い出してみたら、受注と出荷実績の生データを抜き出すだけで29工数もありました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519202/901297cc-c5de-4542-55ed-cf48a278a557.png)
注）ちなみ受注・出荷データ取得のサイトは同じです。

## メンバーに、負担か聞いてみると
この工程についてかなり熟練度が高く、エクセル得意な敏腕商品担当MGRにヒアリングしたところ
「二つの生データ取得ならだいたい5分っす！そんなに苦じゃないですよ。もう空気吸うみたいなもんなんで」
![スクリーンショット 2023-09-08 133248.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519202/67afc7cb-750c-e552-69c8-dbce41fa312b.jpeg)

**どやっ！じゃないよ、 麻痺してますやん(笑)**

この重複作業をチーム全体でざっくり見積もってみました。
なんと、<font color="Red">**1か月510分！！たった生データ取得するだけなのに。**</font>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519202/b0eead79-c6c8-ba73-100c-4616a466fcbf.png)
まさにチリツモですね。私も含め知識のなさから課題から目をそらし、麻痺していることに反省しました。よし！この単純作業こそPAD初心者による課題解決に向いているとさっそく開始です。

# ここでPowerAutomate Desktopについて

PowerAutomate Desktop は、マイクロソフトが提供する自動化ツールで、業務プロセスの効率化を実現します。このツールは、異なるアプリケーションやサービスを連携させ、ルーチンタスクやワークフローを自動化（RPA化）できるため、作業負荷を軽減しエラーを削減します。
例えば、メールの添付ファイルをクラウドへ自動アップロードし、共有リンクを生成することで、ファイル共有が迅速で安全に行えます。また、請求書の作成や承認プロセスもPADによって自動化（RPA化）。大変便利でUIも優れています。会社でOffice365契約しているためDesktop版を無料で使用できますし、今回の課題と親和性がとても高いですね。
![logo_powerautomatedesktop.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519202/e297b087-19ee-437f-3278-dcaf0f94ae7b.png)

https://powerautomate.microsoft.com/ja-jp/

# さっそくフロー構築
今回は企業情報やID・PASSも含まれているため伏字およびコード開示は控えます。ご容赦ください。
**合計52アクション**です。
これで、**先程お伝えした29工数のすべてをRPA化**することに加え、その実績データの**メール配信もRPA化**に組入れます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519202/a2422fe7-03ed-e382-2377-c12ca7eab8e8.png)

## ざっくりの流れはこんな感じ。
PADのフローをグルーピングすると以下の流れとなり、それを受注データと出荷データで2回繰り返します。なお工数番号は、前述のダウンロード工数一覧に該当します。

:::note info
**アクショングループ**
| |アクション  | 工程番号 | 
|:-:|:-:|:-:|
|1 |サイトアクセス・サインイン・ウィンドウ開く | 1,2,3| 
|2|抽出条件を設定する | 4,5,6,7,8,17,18,19,20,21,22 | 
|3|ダウンロード | 9,10,11,12,23,24,25|
|4|CSVファイルエンコード変換 | 13,14,15,16,26,27,28,29|
|5|変換後ファイルをメール配信 | 新規 |

:::

## 何度もうまく流れず修正を繰り返したポイント
初心者ということもあり、トラブルだらけでしたので、とにかくネットで調べまくったり、ChatGPT先生に聞いたり、PAD使いこなしている人に聞きまくりでした。
振返ると、PAD利用者は経験とアイデアで独自の組み合わせで使いこなしている人が多い印象でしたし、PADのアップデートも頻度多いため新機能を学び続けないといけないこと使いこなせないこと理解できました。加えて、これといったフローやアクションの正解はないですが、安定性を高めるコツがあるようです。気づきと特に苦戦したポイント共有します。

:::note info
**ポイント＆対策**
1.UI要素でのアクションは不安定になりやすいため、可能な限りキー送信に置き換え
2.回線速度にムラが発生するため、waitやキー入力間隔を調整しエラーリスクを低減
3.PADは「メモ帳対応していない」「エンコードANSI非対応」と結論　(調べましたが真相不明)。しかし「PowerShellスクリプトの実行」アクションを組み込みPowerShellでコード書くことでエンコード変換に成功
:::
**3は最も苦戦しました、今回も頭から煙出ました。。。
やはり最後はChatGPT先生に質問しまくり、以下のPowershellコードを書いてもらいました。神様！**

<details>
<summary>一部伏字のPowershellコードですが、何かのお役に立てれば幸いです。<font color="Red">折りたたんでます。</summary>

```js
$folderA = "C:\Users\●●●●●●●\Desktop\RPA folder\download"  # 入力フォルダのパス
$folderB = "C:\Users\●●●●●●●\Desktop\RPA folder\move Middle Sys"  # 出力フォルダのパス

# フォルダBが存在しない場合、作成する
if (-not (Test-Path $folderB)) {
    New-Item -ItemType Directory -Path $folderB | Out-Null
}

# フォルダA内のファイルを処理する
Get-ChildItem $folderA -Filter "*.csv" | ForEach-Object {
    $inputPath = $_.FullName
    $outputPath = Join-Path $folderB $_.Name

    # UTF-8形式のファイルをANSI形式でコピーする
    $content = Get-Content -Path $inputPath -Encoding UTF8
    $content | Out-File -FilePath $outputPath -Encoding Default
}

Write-Host "処理が完了しました。"
```
</details>

## これだけでは不十分！
前述の「受注⇒出荷の流れを簡素化したチャート」に記載したのですが、Yahooや楽天の受注情報は毎朝手動でシステムへ取込みシフト制で365日対応しています。この取込完了後に全メンバーへ完了通知をメール配信しています。この完了メールのあとに受注データを取得しないと前日までの受通実績に差異が生じてしまいます。
そこで、この完了メールをトリガーにPADが動くように設定してみます。そのためには、PowerAutomate クラウド版でしか構築できません。クラウド版は有料となりますが、今回はお試し無料登録で挑戦してみました。

## イベントトリガーの設定
**今回は指定した件名のメールを受信するとPADが作動するように構築**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519202/fd598eda-8aca-a6e4-7255-645bdd68c31a.png)
**メールの件名に「☆Yahoo」が含まれていると作動します。**
そのためにも、チームメンバー全員にYahoo・楽天の取込完了メール件名を「☆Yahoo」とするようにお願いしました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519202/4b3a27f0-6fb2-2cf6-d3e5-91e9e064c927.png)

:::note info
**この構築によりできること**
手動取込までのPAD開始待機時間が無くなる
365日対応も可能となり安定配信の実現
データ取得とPADをポチっとする反復作業から解放
:::

**TEST成功です！**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519202/8842522b-af4e-5830-6225-25439ebbab21.png)

# メンバーの感想は？
朝礼や週次MTにて、チームメンバーが感じている困り事・課題解決に向け、RPA技術を用いて日々の作業を軽減できるかテストしたい旨を説明ししました。
全メンバーにRPAで自動生成される実績データを、メール配信を行うことで改善を体感してもらいました。3日間ほどのテスト配信時点のフィードバックは以下のとおりです。

:::note info
結果は。。。
・実績生データの配信は作業時間削減できるがわずか、欲しいのは加工されたものデータです
・ふ～ん、自動でデータ配信できるRPAってすごいですね
・実績は毎日見れていなかったので便利だが、生データなので見にくいですね

助かる～、楽になった～　のご意見件数はゼロ！なんど聞いてもゼロ！ゼロポジティブです。
ChatGPTとあんなことやこんなこと。。。労われね～(笑)

:::
各個人における一日当たりの**作業削減時間は平均で推定約6分のため体感しにくい**ことが要因だったかもしれません。管理者目線でチーム全体の510分のムダはインパクト大きかったのですが、各メンバーに焦点を当てるとより大きな**真のお困り事はその先**にあったようです。

:::note info
**もっとこうしてほしい感想**
1.この生データを他のマスターデータ各種と突合させて複数の追加情報を付加
　（例：取引先情報・原価情報・社内管理52週カレンダーなど）
2.追加情報を付加後にのファイル編集
　（例：ピボット編集・加工・昨比分析・お取引先とデータ共有のためお取引先様毎にデータを切り分けてメール配信など）
:::
もっとこうしてほしい感想がかなり明確で、皆さんほぼ同じ内容だったので、足元で取り組むべく課題解決は明確になりました。

# 今後の改良に向け
データ取得についての作業重複は課題意見として多かったものの、各メンバーはデータ取得後の加工に拘束されている時間のほうが圧倒的に困っているウェイトが高いようです。レポート化されたもっと有意義なRPA化されたデータの自動生成が必要ということが見えてきました。
最近YouTubeで勉強始めた**パワーピボット**をマスターしPADと組み合わせれば、解決できそうな気がします。学びを続けさっそく取り掛かります。チームメンバーが **「WOW」** と感じてもらって、私も勉強しよう！って能動的になることを目標にトライ＆エラーです。
![22257991.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519202/0761cedf-bc89-29c5-f096-d324129a9c9c.jpeg)

今回、社内情報が多いためコードの公開は控えさせていただいております。
よって冒頭動画もモザイクだらけとなりました。（このモザイク処理めちゃ時間かかった。。。）
ご容赦ください🙇🙇🙇