業務自動化で脱・手作業!一人事務のDX活用術 | RPA・自動化ツール

業務自動化で脱・手作業!一人事務のDX活用ブログ|RPA・自動化ツールで業務をもっとラクに、もっとスマートに

Power Automate Desktopでローカルフォルダの更新を検知する方法

Power Automate Desktopでローカルフォルダの更新を検知する方法

業務上、営業マンから週に何度かクラウド上のフォルダに資料が共有される場合があります。クラウド上なので履歴が残りますが複数にフォルダ分けられている場合、格納先が把握しづらいです。クラウド上のフォルダ更新を感知することはPower Automate Desktopで実現可能ですが、残念ながら有料プランが必要です。

今回は、有料プランに頼らず、クラウド上のフォルダをローカルに落とし、ローカルフォルダの更新を検知する方法について検証してみました。

【背景と課題】

  • 最新情報の把握が困難:更新タイミングや格納フォルダが不明確で、最新の資料を見逃してしまう可能性がある。
  • 複雑なフォルダ階層:フォルダが何層にも分かれている場合、すべてのフォルダを開いて確認する必要がある。
  • 複数の営業マンによる管理の煩雑さ:営業マンごとにアップロードされるため、資料の格納場所が分かりにくくなる。

無料プランではリアルタイムな監視が難しく、効率的に情報を追跡する方法が求められます。そこで、クラウドフォルダの内容をローカルに同期し、ローカルで更新を検知する方法を検討しました。

Power Automate Desktopでローカルフォルダの更新を検知する方法

このように2月分のフォルダの中に営業マンが格納した資料が入っています。

outputのExcelに該当のフォルダのフォルダパス(C:\〇〇〇\×××\Desktop\2月\▽▽\◇◇.pdfのようなフォルダが入っているアドレス)を格納していき、出力フォルダに更新のあったファイルのみを出力していきます。

【試行プロセス】ローカル同期と更新検知の手順

① フォルダ階層のループ処理で全ファイルパスを取得

まず、ローカルに同期されたクラウドフォルダ内の全階層(下位フォルダも含む)をループ処理で巡回し、各フォルダおよびファイルのパスを取得しました。取得したファイルパスは、全てエクセルに書き出し、一覧リストとして保存。これにより、現在ローカルに存在するフォルダパスのデータベースを構築。

Power Automate Desktopでローカルフォルダの更新を検知する方法

以前、フォルダバックアップを作成する方法の記事を書きましたが、フォルダーが存在する場合、その下の階層のフォルダ、その下の階層のフォルダ…とループさせることでファイル名を取得していき、取得されたファイル名をEXCELに書き込んでいきました。

keiridx.net

ここまででフォルダパスをこんな形でエクセルに取得しています。

Power Automate Desktopでローカルフォルダの更新を検知する方法

② 前回リストとの比較で新規フォルダを検出

次に、前回の起動時に取得したフォルダパス一覧(前回リスト)と、今回取得した最新のリストを比較しました。比較にはエクセルを活用し、同じフォルダパスの隣に「一致」と記録。本当は不一致だけ抽出したかったのですが、不一致のみの抽出がうまく機能せず、一致しないものを不一致とすることで、前回から増えた新規フォルダだけを抽出しました。

Power Automate Desktopでローカルフォルダの更新を検知する方法

Power Automate Desktopでローカルフォルダの更新を検知する方法

③ 一致しないデータの出力とフォルダコピー

更新検知の結果、前回リストに存在しない(=一致しない)フォルダがある場合、そのフォルダのパスを出力先フォルダへコピーする処理を実装しました。具体的にはエクセルのB列が空白である行を条件に、対象フォルダパスを抽出。コピー先は、あらかじめ指定したローカルフォルダ(先ほど作成した出力フォルダ)に保存し、必要な情報の再確認ができるようにしました。

Power Automate Desktopでローカルフォルダの更新を検知する方法

④ リストのバックアップと次回用データの更新

最後に、今回取得したリストをバックアップとして前回リストシートに移し、最新リストのシートはクリアして保存。これにより、次回実行時には新たなフォルダ更新のみを検知できる状態に整えました。

Power Automate Desktopでローカルフォルダの更新を検知する方法

【結論】処理時間が長く感じられるものの、特定のシーンで有用

このフローは、毎日更新をリアルタイムで検知するには処理時間がかかりすぎるため、即時の通知には向かないかもしれません。特に、すべてのファイルを取得し、その中から不要なファイルを除外していく処理を行っているため、どうしても時間がかかります。しかし、例えばすべてのファイルを開いて目視確認しているというような状況では、非常に有用な手法です。ファイルを一つ一つ確認する手間を削減し、確実に新規フォルダやファイルの更新を検知することができます。

もし、リアルタイムの検知が重要な場合は、処理速度の改善が求められるかもしれませんが、定期的なバックアップや再確認には非常に効果的な方法と言えます。このように、目的に応じて使い分けることができる点では、非常に価値のある手法であると感じました。

クラウド上の何階層もあるフォルダを毎回確認している、共有フォルダを何階層にもわたってチェックしている、というような場合にお役立ていただければと思います。

VBAとの比較をしましたので合わせてご参考ください!

keiridx.net

▼この記事が役に立ったらブックマークをお願いします

 Power Automate Desktopでローカルフォルダの更新を検知する方法

Power Automate Desktopでローカルフォルダの更新を検知する方法
人気ブログランキング

Power Automate Desktopでローカルフォルダの更新を検知する方法

はじめてのPower Automate Desktop-無料&ノーコードRPAではじめる業務自動化 [ 株式会社ASAHI Accounting Robot研究所 ]

価格:2508円
(2025/2/14 12:07時点)
感想(5件)

Power Automate Desktopでローカルフォルダの更新を検知する方法

Power Automate Desktopでローカルフォルダの更新を検知する方法

図解でわかるRPA いちばん最初に読む本 [ 神谷 俊彦 ]

価格:1760円
(2025/2/14 12:08時点)
感想(1件)