業務革命！ChatGPTを活用し、VBAとPADでファイル仕分けとメール送信が2時間⇒1分になった話

# 同じ作業の繰り返しをミスなく、早くこなせるように改善出来ませんか？
おはようございます、こんにちは、こんばんは！
いつでも笑顔、いけちゃんです。
これまでの記事で、個性あふれる催事業者さんとのやり取りに関する業務改善の仕組みをご説明してきました。

:::note
↓前回の記事はこちら↓
:::

https://qiita.com/ikeuchi-kota/items/012583d22a47a2f18cc9

今回は、そんな業者さんとのやり取りについて、同じ部署で働くパートさんから大きな困りごとを伺いました。

:::note
催事業者さんに送る各お店への出店スケジュールなんですが、毎回Excelファイルを業者さんごとに分割して保存し、その後に業者さんごとのファイルを添付したメールを送っています。
この作業、50社も（！）あって始めると2時間くらいかかるうえに、ミスも偶にあるため不安なんです・・・

同じ作業の繰り返しをミスなく、早くこなせるように改善出来ませんか？
:::

・・・困ったぞ、いけちゃんはプログラミングのpの字も知らない・・・
でもこんなに時間がかかっている作業は何とかしたい、どうすればいいんだろう？

# 何をしたいのか、の整理
今回の記事でも、最終的な目的を整理しました。

:::note
目的：催事業者さんへの送信メールおよび添付ファイルにミスがなく、早くこなせるようにしたい
:::

図解すると、下記の部分を自動化していきたいと考えました。
![やりたいこと図.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637980/3de9ac5f-7b8d-6a48-2717-1ab56086d6f1.jpeg)

こんな作業を早く、ミスなくこなせるようにするには、何が必要になるのでしょうか？

# 業務自動化の魔法`Visual Basic for Applications(以後、VBA)`と`Power Automate Desktop（以後、PAD）`

<details><summary>こちらの記事は仕組みの紹介の為、知っていたら飛ばして大丈夫！</summary>

### Excel自動化ならこちらにお任せ！VBA
まず初めにExcelの標準機能として、自分も使ったことはないけど知っている、`VBA`と呼ばれる機能が思い浮かびました。

Excelの作業を自動化するプログラミング言語で、詳細については別の方の記事となりますが下記を参照ください。

https://qiita.com/inoguchi-nami/items/4d8e6d3d123785622a4e

`VBA`を扱えるようになれば、`1. 全業者さんの一覧でまとまっているExcelファイルを、業者さんごとに分割して保存する`については、自動で実行することが出来そうです。

### 超お手軽なRPAツール！PAD
皆さんは、`RPA`という言葉を聞いたことがありますか？
簡単にまとめると、パソコンで行っている事務作業を自動化できる技術のことです。

`RPA`のツールの一つである`PAD`が、Windows10や11のユーザーについては無償で提供されていて、会社パソコンにも入れることができるとのこと。

このツールなら`2. メールの下書きに定型文を使用し、業者さんごとの名前、宛先、添付ファイルにし送信する`ことが自動化できるかも？
何ができるかについては、こちらも別の方の記事となりますが下記を参照ください。

https://qiita.com/maekawawawa/items/b9c7b866f5ee31d2acd3

この2つを使用して、ファイルの仕分けとメールの自動送信に挑戦してみます！

</details>

# 業務革命！ファイル仕分けとメール送信がミスなく1分の作業になった！
### まずは結果から、動作状況は下記動画をご確認ください

<blockquote class="twitter-tweet" data-media-max-width="560"><p lang="ja" dir="ltr">あなた（ChatGPT）が私にくれたもの～<br>自動で仕分けるVBAコード～<br>あなた（PAD）が私にくれたもの～<br>メール送信の全自動～<br><br>2時間はかかる作業が1分へ、というかボタン1回へ！<a href="https://twitter.com/hashtag/protoout?src=hash&amp;ref_src=twsrc%5Etfw">#protoout</a><a href="https://twitter.com/hashtag/%E3%83%96%E3%83%83%E3%82%AF%E3%82%AA%E3%83%95%E3%81%A7%E3%83%97%E3%83%AD%E3%83%9D%E3%83%BC%E3%82%BA%E3%81%99%E3%82%8B%E3%83%80%E3%82%A4%E3%82%A8%E3%83%83%E3%83%88%E4%B8%AD%E3%81%AE%E3%83%A4%E3%83%9E%E3%83%88%E9%81%8B%E8%BC%B8?src=hash&amp;ref_src=twsrc%5Etfw">#ブックオフでプロポーズするダイエット中のヤマト運輸</a><a href="https://twitter.com/hashtag/ChatGPT?src=hash&amp;ref_src=twsrc%5Etfw">#ChatGPT</a> <a href="https://twitter.com/hashtag/PowerAutomateDesktop?src=hash&amp;ref_src=twsrc%5Etfw">#PowerAutomateDesktop</a><a href="https://twitter.com/hashtag/PAD?src=hash&amp;ref_src=twsrc%5Etfw">#PAD</a> <a href="https://t.co/RjoLh4UzNH">pic.twitter.com/RjoLh4UzNH</a></p>&mdash; いけちゃん (@since2023_kota) <a href="https://twitter.com/since2023_kota/status/1754844309730554044?ref_src=twsrc%5Etfw">February 6, 2024</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

上記を実現したPADのフロー画面はこちら
![image - 2024-02-07T215741.945.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637980/c159b472-0e6d-5cb4-af0e-aa80e85a51da.png)

### 設定方法はこちら

:::note
使用ツール
1. Microsoft Excel 2016
1. Power Automate Desktop
1. Gmail`アカウント作成の上、スマートフォンへアプリを導入する必要があります`
1. （VBAコードが使えない人向け、要するに私）ChatGPT
:::

設定方法を紹介するにあたり、実際に使用したExcelファイルサンプルをGigaFile便よりダウンロードできるようにし、VBAコードの設定、PADのフローのソースコードも掲載しています。
是非、試してみてください。
※ダウンロード期間は本記事執筆後、100日間です

<details><summary>事前準備①：Excelファイルの作成</summary>

①[仕分ける前のファイル（催事スケジュール.xlsm）](https://38.gigafile.nu/0212-b87c3958b8dbcf2bbedebc33d80adc214)<br>　任意の場所に保存してください。
②[仕分ける際のコピー先ファイル（202403-202405_催事スケジュール.xlsx）](https://38.gigafile.nu/0212-db8f0196e03392952bed31022dcb05fc0)<br>　任意の場所に保存してください。
③[業者名、担当者名、メールアドレス、添付ファイル名（拡張子.xlsxは除く）の一覧ファイル（全_催事取引先一覧.xlsx）](https://38.gigafile.nu/0212-b6fa0666ef0e0944894a565f60d5058d8)<br>　任意の場所に保存し、`W2セルからW6セル`に送信先のメールアドレスを入力してください。

保存した場所は後で必要になるため、下記画像の赤枠内をコピーし、保管してください。
![image - 2024-02-07T223434.986.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637980/68a652a5-f70d-77a7-61c9-62aba32ef7e1.png)</details>

<details><summary>事前準備②：VBAコードの設定</summary>

画像に沿って設定してください
![image - 2024-02-07T223906.089.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637980/64418d82-ffac-cdae-8469-6d668e72c65b.png)

![image - 2024-02-07T224502.201.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637980/e1131782-effe-a349-c97a-dd14d05e6fb0.png)

次の画像ではExcelの「開発」という機能を使用しますが、標準では表示されない設定になっています。
もし、表示されない場合は[こちらをクリック](https://support.microsoft.com/ja-jp/office/-%E9%96%8B%E7%99%BA-%E3%82%BF%E3%83%96%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B-e1192344-5e56-4d45-931b-e5fd9bea2d45)して設定してください。

![image - 2024-02-07T224907.159.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637980/a45d18a3-4858-1195-e1aa-4056669bc919.png)

![image - 2024-02-07T225249.279.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637980/0f36be0d-7bb3-308a-1572-b8094b9e934a.png)

![image - 2024-02-07T225744.087.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637980/ca8fb479-4b45-962b-bb58-894b0d938756.png)

ここまで設定したら、上書き保存して閉じてください。</details>

<details><summary>事前準備③：Gmailの設定</summary>

ここでは、すでにGmailアカウントを取得し、スマートフォンにアプリを設定している前提で進めます。
パソコンからGmailを開き、画像に沿って設定してください。

![image - 2024-02-07T231038.592.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637980/a8557afe-95dc-acdd-cc94-753a252cb2e9.png)

![image - 2024-02-07T231047.050.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637980/8438ae39-0e48-e381-c5ce-55ec157129a1.png)

![image - 2024-02-07T231051.621.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637980/78445c29-f914-b7df-1e5e-109e476c0457.png)

![image - 2024-02-07T232017.848.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637980/4cbd976a-2e9a-fbbe-bd65-0fe4a67da6c0.png)

![image - 2024-02-07T232019.334.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637980/806b5c02-ea73-80f4-a04b-42e69aa1dd04.png)

![image - 2024-02-07T232022.533.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637980/01d51a73-d54f-b034-bcfa-25ed9fd0ca6f.png)

![image - 2024-02-07T232023.795.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637980/cbe68716-73c3-41ad-d105-5e1169710db9.png)

![image - 2024-02-07T232027.097.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637980/12ce8230-f30a-4ffd-1e23-87a6b7bca924.png)

![image - 2024-02-07T232030.075.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637980/c3bfd3fe-afc1-a27f-0c2a-8e605da0f2a6.png)

![image - 2024-02-07T232031.259.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637980/b2c92218-4864-2b3e-bd07-dbcab94e9913.png)

![image - 2024-02-08T000418.425.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637980/4b5718d3-f00a-3488-3197-5324b7356535.png)

![image - 2024-02-07T232035.951.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637980/65dfc56a-9ad0-63f5-bb28-78c16beb164e.png)

![image - 2024-02-07T232039.635.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637980/ede6159c-ab2c-8aef-2f15-8c59c6baf0fe.png)

![image - 2024-02-07T232048.896.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637980/c61c7e50-6140-dd2e-215c-8b303539fd4d.png)

</details>

<details><summary>PADの設定</summary>

事前準備①～③が完了したら、いよいよPADの設定です。
PADがインストールされている前提で進めますので、画像に沿って設定してください。


![image - 2024-02-01T144700.408.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637980/95b02d9e-2c67-fb36-a71b-340f47322df2.png)

![image - 2024-02-08T002939.994.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637980/6ca147a4-e5f1-c40b-b9f4-180acda32048.png)

![image - 2024-02-08T001758.490.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637980/79e1447d-83b5-a1c2-9ae6-eecd39e04cf8.png)

下記黒枠内の右上にファイルのマークが表示されますので、そちらをクリックしてください。
黒枠内のソースコードがコピーされます。
```
Excel.LaunchExcel.LaunchAndOpenUnderExistingProcess Path: $'''C:\\Users\\ike-chan\\Desktop\\催事スケジュール.xlsm''' Visible: True ReadOnly: False Instance=> ExcelInstance
Excel.RunMacro Instance: ExcelInstance Macro: $'''Sheet1.結合して重複削除とコピー'''
Excel.LaunchExcel.LaunchAndOpenUnderExistingProcess Path: $'''C:\\Users\\ike-chan\\Desktop\\全_催事取引先一覧.xlsx''' Visible: True ReadOnly: False Instance=> ExcelInstance2
Excel.SetActiveWorksheet.ActivateWorksheetByName Instance: ExcelInstance2 Name: $'''2023取引先マスタ'''
Excel.GetFirstFreeColumnRow Instance: ExcelInstance2 FirstFreeColumn=> FirstFreeColumn FirstFreeRow=> FirstFreeRow
Excel.ReadFromExcel.ReadCells Instance: ExcelInstance2 StartColumn: $'''A''' StartRow: 1 EndColumn: FirstFreeColumn - 1 EndRow: FirstFreeRow - 1 ReadAsText: False FirstLineIsHeader: True RangeValue=> ExcelData
Excel.CloseExcel.Close Instance: ExcelInstance2
LOOP FOREACH CurrentItem IN ExcelData
    Email.SendEmail.AuthenticateAndSend SMTPServer: $'''smtp.gmail.com''' Port: 465 EnableSSL: True Username: $'''ikeuchi-kota@ga.mv-tokai.com''' Password: P'AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAA8Um92AlqrUqccqHrukkdrwQAAAACAAAAAAADZgAAwAAAABAAAACac87cyyQRjN0MQ5TUbIy2AAAAAASAAACgAAAAEAAAAF4uvrvoJquLDjuKt32mGcwoAAAAd06KFbEtkC0DOi+ftQbWqOIdzB5LPqOy4trvhshUUy79reFrrla64hQAAACRa8Hz00KEyJAJA58BZWqGqwsdLQ==' AcceptUntrustedCertificates: False SendFrom: $'''ikeuchi-kota@ga.mv-tokai.com''' SenderDisplayName: $'''いけちゃん''' SendTo: CurrentItem['お試し'] Subject: $'''ご連絡／2024年03月度-05月度の催事入店スケジュールについて''' Body: $'''%CurrentItem['社名']%
%CurrentItem['担当者名']%さま

いつも大変お世話になっております。
表記の件につきましてご連絡いたします。

■ 2024年03月-2024年05月　催事入店スケジュール　について

詳細につきましては、添付のスケジュール表をご確認ください。
なお、すでに皆さまに運用いただいている入店時の催事チェックリストについては、
不足のご連絡いただければ再案内いたします。

以上、ご確認のほどよろしくお願い申し上げます。''' IsBodyHtml: False Attachments: $'''C:\\Users\\ike-chan\\Desktop\\新しいフォルダ\\%CurrentItem['添付ファイル名']%.xlsx'''
END  
```
![image - 2024-02-08T004033.666.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637980/6f1e9acc-bd2a-8ce3-f4bb-1f47792f5759.png)

![image - 2024-02-08T004327.153.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637980/084ac399-061c-0014-b9ce-cbd43064c1c2.png)

![1行目.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637980/1492a2b5-31c1-67cb-3567-a6695b070d6f.png)

![image - 2024-02-08T004740.822.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637980/570d6920-d58a-dbbe-1acc-ea85ee81b84e.png)

![2行目.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637980/19c4e5bc-e9fd-459f-b727-49b7007dfd80.png)

![image - 2024-02-08T004750.529.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637980/5ceb5f62-2771-937b-5e6c-ec1ee9d46bfa.png)

![image - 2024-02-08T004327.153.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637980/57a9cfe7-acd1-8b58-50c3-326f0f87a040.png)

![image - 2024-02-08T004756.307.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637980/c6a81afb-68bb-2c69-5f95-87e4fba1f0f6.png)

![image - 2024-02-08T004802.054.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637980/c5282243-e019-1ed0-8a5a-8ab411d97905.png)

![image - 2024-02-08T004806.473.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637980/918be141-49bd-2995-85a7-154140d7777b.png)

![image - 2024-02-08T011032.341.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637980/da46058e-30cf-62b3-e2bd-98ca33bc11c3.png)

</details>

<details><summary>（参考に）ChatGPTが凄い！</summary>

今回、VBAコードの作成にあたっては`ChatGPT`を活用しました。
私はプログラミング言語を扱うことができないのですが、`ChatGPT`は非常に素晴らしいシステムで、どんなことをVBAコードで出してほしいかを伝えると、すぐに回答を返してくれます。

返ってきたVBAコードを実際に試し、様々なエラーが発生してもその要因すらも修復してくれます。

実際の画面はこちら
![image - 2024-02-08T020049.340.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637980/80b307d2-21a7-17b8-1a0a-2acdc551e931.png)

プログラミングのpの字も知らない「ド初心者」でも簡単に自動化の手助けになりますので、ぜひ試してみてください！</details>

# 実際に使ってもらった感想と課題の確認

:::note warn
悩み事を解決するべく奮闘した結果、凄いのできましたよ！試してみて、感想や課題があったら教えてください！
:::

### 冒頭で悩みを抱えていたパートさんから

:::note 
これ、本当に凄すぎますね・・・ボタン一個で今までやってた作業が終わるなんて・・・
ただ、一つだけお願いがあるのですが、<font color="Red">2つ以上のファイルの添付</font>は出来ませんか？
いけちゃんが私にメール送信をお願いするとき、別の連絡も一緒に添付するときがありますよね？
:::

そういえばそうでした（汗）

今回業者さんに送った際は、偶々1つの添付ファイルだったため全く気にしなかったことでしたが、2つ以上の添付ファイルで送ることもあります。
PADを見た限りでは、1つの添付ファイルしか送信できないように見えましたが、圧縮ファイルにしたりするなど、方法は様々あると思うので確認してみます！

### 紙、印鑑、手作業に埋もれて業務をしているX世代の同僚から

:::note
VBAコードまで盛り込んで、ファイル作成からメール送信までの一連の流れが完結してるのは凄い！
ちょっと使わせてもらうよ～
自分の場合は最終チェックをしたいから、いきなり送信までせずに<font color="Red">下書きで保存</font>してくれると嬉しいなぁ
:::

実際に使うとなると、確認もできずに送信がされることは確かに不安ですね・・・
元々のファイルにミスがあったらそのまま相手に送られてしまうので、こちらも修正が必要のようです。
PADでの設定は添付ファイルの課題と同様、下書きで止める設定を発見できなかったため、別のシステムなどで同様の仕組みができないかも確認します！

# 最後に

今回知った自動化のツールは、昔の自分では全く扱うことができないものだったと思います。
しかし、話題となっているChatGPTのように、今ではプログラミングコードも自動で生成することができるようになり、より簡単に業務自動化が可能になっていることがわかりました。

まだまだコードの意味はわからず、今回も詳しい人に話を聞いたりもしていますが、それでもちょっとずつ意味を知っていき、チーム全体の課題解決に繋げていきたいと思います。

最後までご覧いただき、ありがとうございました！