プロジェクトの証跡を自動でメール集計！

こんにちは、小売企業に勤めているnaripokです:raised_hand:


私はシステム関連の部署に所属しております。
自部署では直接、システムを開発したり、改修をしたりという仕事はありません。
基本は他のシステム会社に依頼を出します。


システムの新規導入や改修は日々おこなわれており、私たちのメインの仕事としては、依頼だけでなく、スケジュール管理、社内テストの実施、システムのリリース判定など委託会社とやり取りをおこないます。

このやり取りは、どのようなプロセスを得てリリースしたか、社内の承認プロセスは取れているか、テストの内容は適切だったかなど後ほど社内監査の為、証拠としてまとめておく必要があります。

作業としては、対象のメールのやり取りをスクショし、時系列で事象ごとにまとめておきます。この証拠として残しておく作業が地味に手間です。

今回はこの作業を自動でおこない、業務を簡素化できるようRPAを作ってみました。

# できたもの

ボタン一つで、対象の表題のメールの内容を時系列でExcelに書き出力します。

<blockquote class="twitter-tweet" data-media-max-width="560"><p lang="ja" dir="ltr">╋━━ <br>　RPAで特定のメールを自動集計💻　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　<br>　　　　　　　　　　　　　　　　　━━━╋<br> <a href="https://twitter.com/hashtag/protoout?src=hash&amp;ref_src=twsrc%5Etfw">#protoout</a> <a href="https://twitter.com/hashtag/PowerAutomate?src=hash&amp;ref_src=twsrc%5Etfw">#PowerAutomate</a> <a href="https://twitter.com/hashtag/RPA?src=hash&amp;ref_src=twsrc%5Etfw">#RPA</a> <a href="https://twitter.com/hashtag/Outlook?src=hash&amp;ref_src=twsrc%5Etfw">#Outlook</a> <a href="https://t.co/peUhxSc1Da">pic.twitter.com/peUhxSc1Da</a></p>&mdash; Ka4128 (@Ka4128_1) <a href="https://twitter.com/Ka4128_1/status/1737878294861848701?ref_src=twsrc%5Etfw">December 21, 2023</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


# 使用したツール
- [Power Autemate Desktop](https://powerautomate.microsoft.com/ja-jp/desktop/)
- [Outlook](https://outlook.live.com/mail/0/)
- [Excel](https://www.microsoft.com/ja-jp/microsoft-365/excel)

# Power Automate Desktopでの作成手順

① Outlookを自動で起動
② 集計するメールアドレスと対象のメールの表題を指定
③ Excelを自動で起動
④ Excelのシート1行目を指定
⑤ 集計する各項目の名称を④にセット
⑥ ④の次行に集計したメール内容を記載していくよう変数を指定

![スクリーンショット (223).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3575594/f91143d3-d2c2-fc5e-9e5f-67d9895fdf9b.png)



⑦ 集計したメールよりExcelの各項目に書き出す情報を指定
⑧ 集計した次のメールを次行に書き出すよう繰り返しをセット
⑨ 最後にOutlookを閉じる

![スクリーンショット (224).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3575594/ea07d0b1-c010-1400-f020-3707bb5d1a3e.png)


<details><summary><font color="Green"><b>作成したフロー(クリックで開く)</b></font></summary>

```html:作成したフロー<!DOCTYPE html>
Outlook.Launch Instance=> OutlookInstance
Outlook.RetrieveEmailMessages.RetrieveEmailsAndSaveAttachments Instance: OutlookInstance Account: $'''ka.ito@cando-web.co.jp''' MailFolder: $'''受信トレイ''' EmailsToRetrieve: Outlook.RetrieveMessagesMode.All MarkAsRead: False SubjectContains: $'''テストテスト''' SaveAttachmentsInto: $'''C:\\Users\\004128\\Desktop\\protoout''' Messages=> RetrievedEmails
Excel.LaunchExcel.LaunchUnderExistingProcess Visible: True Instance=> ExcelInstance
SET NewVar TO 1
Excel.WriteToExcel.WriteCell Instance: ExcelInstance Value: $'''受信日時''' Column: 1 Row: NewVar
Excel.WriteToExcel.WriteCell Instance: ExcelInstance Value: $'''差出人''' Column: 2 Row: NewVar
Excel.WriteToExcel.WriteCell Instance: ExcelInstance Value: $'''宛先''' Column: 3 Row: NewVar
Excel.WriteToExcel.WriteCell Instance: ExcelInstance Value: $'''CC''' Column: 4 Row: NewVar
Excel.WriteToExcel.WriteCell Instance: ExcelInstance Value: $'''本文''' Column: 5 Row: NewVar
Variables.IncreaseVariable Value: NewVar IncrementValue: 1
LOOP FOREACH CurrentItem IN RetrievedEmails
    Excel.WriteToExcel.WriteCell Instance: ExcelInstance Value: CurrentItem.Date Column: 1 Row: NewVar
    Excel.WriteToExcel.WriteCell Instance: ExcelInstance Value: CurrentItem['From'] Column: 2 Row: NewVar
    Excel.WriteToExcel.WriteCell Instance: ExcelInstance Value: CurrentItem['To'] Column: 3 Row: NewVar
    Excel.WriteToExcel.WriteCell Instance: ExcelInstance Value: CurrentItem.Cc Column: 4 Row: NewVar
    Excel.WriteToExcel.WriteCell Instance: ExcelInstance Value: CurrentItem.BodyText Column: 5 Row: NewVar
    Variables.IncreaseVariable Value: NewVar IncrementValue: 1
END
Outlook.Close Instance: OutlookInstance

```
</details>

- 出力された結果(Excel)
![スクリーンショット (239).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3575594/a614dfb5-7ad7-5751-6795-412a1e17552f.png)


# 使ってもらった

今回は同じ部署の同僚３名に感想をいただきました。
本目的と用途を説明し、実際使ってみての率直な感想(良い・悪い)とこうした方が良いなど意見を求めました。


1人目：Aさん(システムエンジニア)

この場面では使用できそう。範囲を広げれば、他の用途でももっと活用できるのではないか。この使い方ができるのであれば、使用用途は狭めるべきではない。

2人目：Bさん(システムエンジニア)

これを作るぐらいなら、進捗に応じて状況を記録できるプロジェクト管理ツールを作ってほしい。(肯定的な意見なし。)


3人目：Cさん(システム関係の事務)

本用途だけでなく、過去のメールを探す際に一括で取得できるのは有難い。
可能であれば添付ファイルを指定フォルダに自動で保存までしてくれれば、契約書や検収書などの確認がとても楽になる。

# 感想を受けて

批判的な意見もバシバシください、とは事前に伝えてはいたものの、思った以上に反応が悪く、結構がっかりしました。

ただ、いただいた意見はその通りであり、他業務でも効率化できるのであれば用途は広げるべきだし、本用途にはもっと別の管理ツールの方が最適なのかもしれません。
もっと視野を広げて考えることが必要だと改めて認識しました。

また、すぐに改善できそうな意見として、**指定フォルダへの添付ファイルの自動保存**があったため、こちらは追加で実装をおこまいました。

![スクリーンショット (226).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3575594/e8c36bc3-6c45-cd89-7b32-644b820cc054.png)


# 最後に

今回の感想としては、成果物は作って終わりではなく、人に見てもらい改善していくことが大事なのだと改めて認識しました。(お忙しい中時間を作ってくれた皆さんには感謝:sob:)

時間が許す限り、今後の制作物も使ってもらい意見をいただこうと思います。

また、個人的にはPower Autemate Desktopはかなり使い勝手がよく、もっと色々な業務を効率化できるのではないかとも考えています。今後も業務改善に向けてチャレンジし、Power Autemate Desktopをフル活用していこうと思います。

応援よろしくお願いします:v: