- フォルダ監視って何?
- フォルダ監視をPower Automate Desktopでできないか?
- フォルダ内のファイルを自動で処理してほしい。
当記事では、上記の疑問にお答えします。
フォルダ監視は、指定したフォルダ内でのファイルの追加や変更、削除などの変更があった際に、自動で指定した処理を実行する仕組みです。
わざわざ、自分でフォルダに入って処理しなくてもよくなるので、かなり業務負担が減るのではないでしょうか。
また、フォルダ監視はセキュリティの観点からも非常に重要です。
たとえば、悪意のある第三者が重要なデータを更新してしまったり、フォルダ内に不要なファイルが溜まりどのファイルが保存されているのかわからなくなったりするケースが該当します。
本記事では、フォルダ監視の基本概念や3種類のフォルダ監視の方法を解説します。
さらにループアクションを使った擬似的な定期実行の方法も解説しますので、ぜひ一度読んでみてください。
なお、Power Automate Desktopの利用方法・起動方法は、以下の記事をご覧ください。
目次
【前提】フォルダ監視とはフォルダ内の変更に対して自動で処理を行うこと
フォルダ監視は指定したフォルダ内でのファイルの追加や変更、削除などの変更があったら自動で指定した処理を実行する仕組みです。
フォルダ監視を導入すれば、フォルダ内のファイルが不正に削除や変更があった場合にアラートを出したり、フォルダ内の命名規則から外れたファイル名を自動修正したりできます。
セキュリティ上の観点でもフォルダ監視は非常に重要ですが、フォルダ監視を行うには専用のツールやPythonやC#などのプログラミングの知識が必要です。
しかし、専用ソフトウェアはそれなりにお金がかかりますし、プログラミングで仕組みを構築するなら学習コストがかかります。
Power Automate Desktopなら無料で使用できる上、ノーコードなので学習コストもそこまでかかりません。
今回、紹介する内容のレベルのものであれば、個々のアクションの内容を理解すればできるようになるでしょう。
具体的には、下記の仕組みを構築してみます。
- フォルダ内にあるファイルをメモ帳でリスト化する
- フォルダ内にあるファイルが一定数以上になったらメッセージを送信する
- フォルダ内にあるExcelファイルに仕込んだVBAを起動させ保存する。
実際に自分で上記手順を構築してみると、手軽にフォルダ監視の仕組みを整えるのにPower Automate Desktopはピッタリのツールだと理解できるようになるでしょう。
【方法①】フォルダ内にあるファイルをメモ帳でリスト化する
手始めにフォルダ内にあるファイルをメモ帳でリスト化してみましょう。
今回の方法を用いれば、重要なファイルがフォルダ内にあるかを常に監視できるようになります。
何らかのトラブルでフォルダ外へ移動したり削除されたりしても、すぐに対処できるようになるでしょう。
Power Automate Desktopでは、2つのフローを構築するだけで実現できます。
新しいフローを作成したら、フォルダーアクションにあるフォルダー内のファイルを取得を中央にドラッグアンドドロップしてください。
画面が切り替わるので、フォルダー欄に監視したいフォルダパスを入力します。
また、フォルダーアイコンをクリックすればエクスプローラーのような画面で選択もできます。
下のファイルフィルター欄は、そのままにしてください。
*はフォルダ内全てのファイルを表すワイルドカードです。
もし、テキストファイルだけを検出したい場合*.txtと入力すればテキストファイルだけが検出できます。
変数として、Filesが作成されたのを確認しましょう。
次にファイルアクションにあるテキストをファイルに書き込むをドラッグアンドドロップしてください。
画面が下記画像に変わります。
以下のように入力します。
- ファイルパス:あらかじめ作成したメモ帳ファイル(フォルダパスは自由です)
- 書き込むテキスト:%Files%
- ファイルが存在する場合:既存の内容を上書きする
ファイルパス欄にはあらかじめ作成したファイルリストのメモ帳ファイルを入れておきます。
フローを実行してみましょう。
フロー実行前のフォルダは下記の状態です。
フローを実行し、ファイルリストを見てみましょう。
ファイルリストが作成できました!
では、フォルダ内のファイルに少し変化をつけてみましょう。
この状態で再度フローを実行すると、ファイルリストは以下のようになります。
ファイルリストが更新されました!
たった2ステップのフローでここまで実現できるようになるのは便利ですね。
全体のフローは下記になります。
【方法②】フォルダ内にあるファイルが一定数以上になったらメッセージを表示させる
次はフォルダ内にあるファイルがある一定の数を超えたらメッセージを表示させるようにしてみましょう。
余計なファイルが入った際にメッセージを表示させられれば、異常に気づけるようになります。
といっても、設定は3つのアクションだけでできるようになります。
方法①で解説したフォルダー内のファイルを取得をドラッグアンドドロップしましょう。
入力も同じです。フォルダーの状況によってファイルフィルターは変えてください。
方法①で使用したテストフォルダを例にすすめてみましょう。
ファイル数が3つ以上になるか否かでメッセージを変えてみます。
条件アクション欄にあるifを中央にドラッグアンドドロップしてください。
画面が変わります。
以下のように入力しましょう。
- 最初のオペランド:%Files.Count%
- 演算子:より大きい(>)
- 2番目のオペランド:3
次にifとEndの間に、条件アクション欄にあるElseをドラッグアンドドロップしてください。
あとはそれぞれの条件の間にメッセージを入れるだけです。
メッセージボックスアクション欄にあるメッセージを表示をifとElseの間とElseとEndの間に、それぞれドラッグアンドドロップしてください。
画面が変わります。
ifとElseの間のメッセージには、ひとまず下記を入力しました。
- メッセージボックスのタイトル:余計なファイルがあります!
- 表示するメッセージ:フォルダをチェックしてください。
- メッセージボックスアイコン:警告
ElseとEndの間のメッセージには、下記を入力しています。
- メッセージボックスのタイトル:フォルダは正常です。
- 表示するメッセージ:ファイル数は問題ありません。
- メッセージボックスアイコン:情報
フローはこれで完成なので、実際に動かしてみましょう。
まずは3つまでの場合です。
フォルダに1つファイルを加えて、再度フローを実行してみます。
フォルダ内のファイル数でメッセージが変わりました!
完成したフローは以下のようになります。
【方法③】フォルダ内にあるExcelファイルのVBAを自動実行する
フォルダ内にあるExcelファイルに仕込んだVBAを自動実行させてみましょう。
Excel自体の処理はVBAがやってくれるものの、いちいちExcelを開いてVBAを起動させるのは面倒ですよね。
Power Automate Desktopを使えば、3ステップでVBAを自動実行できます。
サンプルとして以下のフォルダとExcelファイルを用意しました。
中身はこのようになっています。
一見、何も記載のないファイルですが、以下のVBAが仕込んであります。
要はセルB2にテストと加えるだけです。
このVBAを起動させて保存させてみましょう。
まずは対象のExcelを起動させるため、ExcelアクションにあるExcelの起動をドラッグアンドドロップします。
画面が変わります。
以下のように、入力してください。
- Excelの起動:次のドキュメントを開く
- ドキュメントパス:対象のExcelファイルパス
入力が終わったら保存してください。
次にExcelアクションにある詳細をクリックして、Excelマクロの実行をドラッグアンドドロップします。
画面が変わったら、マクロ欄に作成したVBAの名前を入力してください。
VBAの名前は以下の箇所になります。
最後はExcelを閉じましょう。
Excelを閉じるをドラッグアンドドロップしてください。
Excelを閉じる前欄をドキュメントを保存にして保存します。
フローを実行してみましょう。
実行後、Excelファイルは下記の状態になります。
VBAを実行し、保存できました!
【応用】ループアクションでフローを定期実行する
せっかくフォルダ監視の仕組みを整えたのなら、定期実行したいですよね。
本来は有料プランでないと定期実行はできませんが、ループアクションを使えば擬似的に定期実行ができます。
ループアクションを使った定期実行については、下記の記事でも詳しく解説していますのでぜひお読みください。
【まとめ】フォルダ監視で、フォルダ内ファイルの作業を自動化しよう
以上、Power Automate Desktopでフォルダ監視をする方法について解説しました。
フォルダ監視はセキュリティ上、必須の仕組みですがPower Automate Desktopであればカンタンにできるようになります。
ファイル数やファイル内容の監視はもちろんですが、フォルダ内にあるファイルの自動処理にも使えるので覚えておいて損はありません。
今回、紹介した内容をもとにオリジナルのフォルダ監視を作成してみてください。