IT初心者が極限の環境でPower Automateを生かそうとがんばってみた

こんにちは！商業施設管理のtsumeです！
２回目の記事となる今回は、生成AIと自動化ツールを活用して業務効率改善にトライしてみたお話です。

# つくりたいもの
デジタルに少しづつ親しむ中で、業務効率改善に直結するアイデアが浮かびました。それが今回の　**PDFから値を抽出しフォーマット化されたExcelシートへ転記する**　という作業の自動化です!
その中でも業務の発注に関する書類作成は、最も頻度・ミスともに多い作業で、「いつか必ず楽に終わらせてやる。。」という因縁の相手なのです。

## ゴール設定
+ ターゲット：　私自身、同じ業務をしている同僚
+ ゴール設定：　ほぼ毎日、約30分費やしている作業時間の削減

## 使用ツールとサービス
+ ChatGPT GPT-3.5
+ Power Automate
:::note alert
今回は`Power Automate`を単体で使用しました。
当初は`GAS`と`GoogleSpreadsheets`を用いて、`ChatGPT`にコードを示してもらいつつ作成するイメージを描いていました。だがしかし！
社内で使用できるツールがとことん限られており、調べれば調べるほど険しい道のりとなりました。これが極限の環境。。
:::

## 全体像
+ `Power Automate`だけを使用して業務の自動化を行います
+ `Power Automate`の設定は、`ChatGPT`に教えてもらいつつ進めます
+ サードパーティの機能やサービスは使用しません（できない縛りです）

# ChatGPTを利用してみる
なんとなく制作の順番は浮かんでいましたが、今回したいことをシンプルに`ChatGPT`に質問してみます。

![スクリーンショット 2024-07-22 100326.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812402/e3afe744-3c25-6a15-0d30-c8553f2c7903.png)

「あぁ。。」となりましたね。質問の仕方が悪かったです。
「PDFから値を取り出して転記する」だけであれば、まず最も容易なコピペを提案されますし、他にも有料アプリを使用した何通りもの方法があります。
人のコミュニケーションも言葉足らずで認識がズレることがありますよね。変なところで人間味を感じます（笑）

## 気をとりなおして再度
![スクリーンショット 2024-07-24 230320.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812402/9a11a791-b683-5776-bf7e-3b2c2faac83b.png)
「ファイルの変更を監視」が見つからない！

:::note warn
ここで得た教訓があります。ChatGPTは、
「事実の中で一部でっちあげることがある」、「手順や方法の提示は不得意」ということです。
プロンプトが完璧でないという理由もありますが、今回の例では、正しい手順を提示しつつもその中で実在しない言葉や機能を含むことがありました（あるいは他のサービスと混同する）。
手順が正しいから全て正しいと思いこんでしまい、存在しない機能を探しかえって時間を消費してしまいました。
:::
万能ではないところも妙に人間味を感じます（笑）。

## ~~コード形式に~~　手順の全体像
ここまでつらつらと説明文が続きわかりづらかったので、フローを示してもらいます。

抽出元と転記先の準備
![スクリーンショット 2024-07-24 230750.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812402/cbb2492d-35cc-0c9c-7a2b-8d57d063f25e.png)

PDFファイルの指定～Excelへの書き出し・保存
![GPTフロー②.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812402/db89f730-c50b-08ee-a3a2-b08aec32a288.png)



<details><summary>コード形式化してみるとこんな感じ
</summary>

```ruby:手順
1. フォルダ内のファイルを列挙
   - フォルダ: C:\Path\To\Your\PDFs
   - フィルター: *.pdf
   - 結果を保存: filesList

2. 繰り返し (無限ループ)
   - 条件: True
   - アクション:
     a. フォルダ内のファイルを列挙
        - フォルダ: C:\Path\To\Your\PDFs
        - フィルター: *.pdf
        - 結果を保存: currentFilesList

     b. 条件
        - 条件: currentFilesList が filesList と異なる場合
        - 真の場合のアクション:
          i. PDF - ファイルからテキストを抽出
             - ファイルパス: currentFilesList[0]
             - 結果を保存: extractedText

          ii. Excel - ワークブックを開く
              - ファイルパス: C:\Path\To\Your\Excel\output.xlsx

          iii. Excel - セルに書き込む
               - シート名: Sheet1
               - セル: A1
               - 値: extractedText

          iv. Excel - ワークブックを保存

          v. Excel - ワークブックを閉じる

          vi. ファイルリストを更新
              - filesList = currentFilesList

     c. 遅延
        - 時間: 60 秒

```
</details>

# `Power Automate`へ実装してみる
ChatGPTに大まかな流れを教えてもらったところで、`Power Automate`で実装してみます。

PDFからのテキスト抽出
![フロー1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812402/b0842153-5779-e809-590f-c0f92ca796ac.png)

Excelへの書き出し
![フロー②.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812402/4a44629b-d317-80e8-2c6e-480dd8e42064.png)


Excelの起動、PDFからの全テキスト抽出は`ChatGPT`の示す教科書通りでした。しかし次の手順である「特定のテキストを取り出す方法」については、探るのに苦戦しました。ここからはネットの記事も参考にすることで、`正規表現`なるものにたどり着きました。

https://www.itschool-1st.com/2024/07/13/tips3-extract-data-with-regex/

## 心が折れる
ここまで限られたリソースで制作を進めてきましたが、`正規表現`の壁の前にとうとう歩みが止まってしまいました。

![エラー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812402/16c63a96-cbcd-c3bf-6a81-039278c4a6e4.png)
結局`正規表現`についてはまだまだ基礎知識が及んでおらず、そのため`ChatGPT`からもうまく情報を引き出すことができませんでした。。
久しぶりの完全敗北。

## できたこと・できなかったこと

ゴールであった作業時間を削減することは、今回の挑戦では実現できませんでした。
今後の進捗管理のため、振り返って整理をしてみます。

**【できたこと】**
+ `ChatGPT`を利用し、大まかな流れと工程を設定できたこと
+ PDFからテキスト全体を抽出すること

**【できなかったこと】**
+ 抽出したテキスト全体から、特定のテキストをさらに抜き出すこと（`正規表現`の理解・活用）
+ 抜き出したテキストを、Excelフォーマットの指定したセルへ転記すること

# ChatGPTと一緒に制作してみて
今回は限られた時間、環境下で、求めているものを作り上げることはできませんでした。
しかし明らかに実感したこともあります。

一番に感じたことは 「**立ち止まることが減る**」 という感想です。
技術的な知識不足や、何から始めるべきかで検討もつかないときに、`ChatGPT`がそれなりの道を示してくれました。
そして道を歩き始めた後も綿密なサポートを通じて、一つの成果物をつくりあげるまで伴走してくれます。途方に暮れてあきらめずに、「**歩き続けることができる**」という感動はひとしおでした！

一方で、「**生成AIとのコミュニケーション方**」は課題が残りました。
生成AIの特性や、向き不向きを知った上で活用することが、成果物の制作効率、正確さに直結します。また、独特なプロンプトに慣れることも、自分自身の今後のパフォーマンスを左右すると実感しています。
制作に一貫して`ChatGPT`を使用して初めて分かりましたが、生成AIの力を最大限引き出す能力が非常に重要です。今はまだまだうまく付き合えていませんね。
今回は目の前にあった課題について即解決を目指しましたが、継続して多方面で生成AIとタッグを組み、可能性を広げていきたいです！