3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Power Automate for Desktopを使って、簡単なファイル検索機能を作ってみた!

Posted at

こんにちは。M.Arataniです。
デジタルツールを学んで、仕事で活かそうと日々試行錯誤をしています!
今回はPower Automate for Destopを活用し、共有フォルダ内でのファイル検索の自動化・簡易化に取り組みました。

PADを選んだ理由は、Microsoftのツールとも連携を取りやすいRPAツールだからです。私の会社はMicrosoftのツールをメインに使っているため、今回作成したフローを今後も活用出来そうと思い、PADを使用しました。
前回の記事ではフォルダ内のレポート一覧をVBAで自動作成したのでそれを活用でもいいのですが、PADの方がUI面で良さそうだなと思い、今回1から作成しました。

目次

1.共有フォルダ内で見たいファイルを簡単に検索
2.使用ツール
2.出来たもの
3.フローについて
4.部署のメンバーからのフィードバック
5.今回やってみて

1.共有フォルダ内で見たいファイルを簡単に検索

私の担当するアプリ広告では施策後にレポートを作成しています。PPTまたはPDF形式のレポートを作り、出稿主に結果報告をするためです。
レポートは共有サーバーに格納しているのですが、過去施策が増えてくると見たいレポートを探すのも時間がかかります。過去レポートは、次の施策前に前回の内容を確認したり、レポートを作成前に前回はどんな結果が出ていたのかを確認したり…と何回か探す事が出てきます。
そんな時に「施策レポート」フォルダから、年度別、商流別と探すのは結構手間に感じていました。またチーム内でも「あのレポートはどこにあるかな?」という会話が出る事も多かったので、今回簡単に検索出来るツールを作成しました。

2.出来たもの

3.フローについて

💻画面上のフロー

PAD1スクリーンショット 2025-09-08 235830.png
①Excelの起動:検索用ファイルを起動します
②メッセージを表示:「検索ワード入力」のポップアップを表示
 ⇒💡該当するセルに、検索ワードを入力するように促します!入力後、OKを押すと次のフローに進行。(これでフローの一連の流れの中で検索出来るという、楽さを感じられると思っています)

③Excelワークシートから読み取る:検索する企業名
④Excelワークシートから読み取る:年度フォルダ指定のため
⑤Excelワークシートから読み取る:商流フォルダ指定のため
⑥変数の設定:④と⑤で取り出した変数でフォルダパスを作成
 ⇒💡最初は③のみで検索していましたが、多くのフォルダを検索する事で3分かかっていたため、④と⑤でフォルダを指定、⑥で動的なフォルダパスを作成する事で、検索するフォルダを絞り込み、検索時間を減らしました!

image.png
⑦Excelワークシートから最初の列や行を取得:「検索用ファイル」内の最初の空白行を判断してくれます
⑧フォルダー内のファイルを取得:⑥で設定した変数(フォルダパス)内のファイルを取得
⑨For each:取得したファイルを反復処理します
⑩If条件:検索対象がフォルダーで無い場合に次のフローを実行するようにしています
 ⇒💡最初は入れてなかったのですが、上手くファイル名のみをチェックするように追加しました。(Geminiのアドバイスで入れましたが、必須ではないかもしれません)
⑪If条件:検索する企業名を含むファイルを取得
⑫⑬Excelワークシートに書き込む:該当セルにファイル名、ファイルパスを記入

⑱メッセージを表示:検索が終了した旨をポップアップで表示

実際のコード

折りたたんでいるので展開して下さい!
Excel.LaunchExcel.LaunchAndOpenUnderExistingProcess Path: $'''\\\\検索用ファイルのファイルパスをここに入力''' Visible: True ReadOnly: False UseMachineLocale: False Instance=> ExcelInstance
Display.ShowMessageDialog.ShowMessage Title: $'''検索ワード入力''' Message: $'''検索用ファイルにメーカー名、年度、商流を入力したらOKを押してください。''' Icon: Display.Icon.Information Buttons: Display.Buttons.OK DefaultButton: Display.DefaultButton.Button1 IsTopMost: False ButtonPressed=> ButtonPressed2
Excel.ReadFromExcel.ReadCell Instance: ExcelInstance StartColumn: $'''B''' StartRow: 1 GetCellContentsMode: Excel.GetCellContentsMode.TypedValues CellValue=> SearchKeyword
Excel.ReadFromExcel.ReadCell Instance: ExcelInstance StartColumn: $'''B''' StartRow: 2 GetCellContentsMode: Excel.GetCellContentsMode.TypedValues CellValue=> Year
Excel.ReadFromExcel.ReadCell Instance: ExcelInstance StartColumn: $'''B''' StartRow: 3 GetCellContentsMode: Excel.GetCellContentsMode.TypedValues CellValue=> Company
SET SearchFolder TO $'''\\\\検索したいフォルダパスをここに入力(年度フォルダの一つ前の階層まで)\\%Year%\\%Company%'''
Excel.GetFirstFreeColumnRow Instance: ExcelInstance FirstFreeRow=> FirstFreeRow
Folder.GetFiles Folder: SearchFolder FileFilter: $'''*''' IncludeSubfolders: True FailOnAccessDenied: True SortBy1: Folder.SortBy.NoSort SortDescending1: False SortBy2: Folder.SortBy.NoSort SortDescending2: False SortBy3: Folder.SortBy.NoSort SortDescending3: False Files=> FoundFiles
LOOP FOREACH CurrentItem IN FoundFiles
  IF $'''ISFOLDER(%CurrentItem%)''' <> $'''True''' THEN
      IF Contains(CurrentItem, SearchKeyword, False) THEN
          Excel.WriteToExcel.WriteCell Instance: ExcelInstance Value: CurrentItem.Name Column: $'''A''' Row: FirstFreeRow
          Excel.WriteToExcel.WriteCell Instance: ExcelInstance Value: CurrentItem.FullName Column: $'''B''' Row: FirstFreeRow
          Variables.IncreaseVariable Value: FirstFreeRow IncrementValue: 1
      END
  END
END
Display.ShowMessageDialog.ShowMessage Title: $'''検索が終了しました!''' Message: $'''検索終了''' Icon: Display.Icon.Information Buttons: Display.Buttons.OK DefaultButton: Display.DefaultButton.Button1 IsTopMost: False ButtonPressed=> ButtonPressed

4.部署のメンバーからのフィードバック

今回は部署のリーダーと同僚の方に作成したツールを使ってもらいました。
説明前に以下を準備してもらいました
・Power Automate for Desktopのダウンロード
・PADの拡張機能をオンにする
また実際の手順は以下となり、この内容を個別に説明しました
・PADの「新しいフロー」を開き、今回作成したコードを貼りつけ
・フローを実行
・Excelファイルが開くので、検索したい企業名、年度、商流を記入し、OKを押す
・あとは自動で検索、リストに出してくれる
・ファイルパスをエクスプローラーに貼り付ければ、対象のレポートファイルが開く

🍎Mさん(リーダー)からのフィードバック

Mさんは私が所属するチームのリーダーです。直属の上司になります。
幅広い分野の事を知っており、いつも的確なアドバイスをしてくれます。
「エクスプローラーで検索するよりも楽。
 検索したい階層まで行かなくて済む。
 これを活用して、他にも検索ツールが作れるといいと思う。」

🍋Kさん(同僚)からのフィードバック

Kさんは他のデジタル関係の部署から1年程前に異動されてきた方です。
デジタルツールの知識も豊富で、今回もすんなりと試してもらいました。
「レポートを探す手間が省けるのは楽で助かります。
 PADは興味がありましたが、実際にフローを見ると面白いですね。
 複数の企業名で検索出来ると更に使いやすいです。」

~フィードバックを受けて~

楽になったというフィードバックを貰えた事は良かったです。PADをダウンロードしてもらう必要はありますが、フローの実行を押すだけなので分かりやすかったようです。
また他ツールとの比較はドキッとしました。他の検索方法と比べて、本当に自動化が必要かは、どれだけ他と比べて便利に、動作が多様かで左右されるなと思いました。

5. 今回やってみて

今回はChatGPTとGeminiに聞きながらフローを作成しました。今回のフローの作成についてはGeminiの方が実際のアクション名を基に教えてくれました。ただやはり情報が古かったり、PADのアップデートを網羅していない点も多かったです。
また実際に作り、周囲に使ってもらう事で、改めて動作や仕様の改善点についての気づきを得られました。何をどう自動化、簡易化するかは作りながら分かってくる事もありますが、事前にもっと深堀り出来ると、より良いツールが作れるなと実感しました。

3
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?