こんにちは。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.フローについて
💻画面上のフロー

①Excelの起動:検索用ファイルを起動します
②メッセージを表示:「検索ワード入力」のポップアップを表示
⇒💡該当するセルに、検索ワードを入力するように促します!入力後、OKを押すと次のフローに進行。(これでフローの一連の流れの中で検索出来るという、楽さを感じられると思っています)
③Excelワークシートから読み取る:検索する企業名
④Excelワークシートから読み取る:年度フォルダ指定のため
⑤Excelワークシートから読み取る:商流フォルダ指定のため
⑥変数の設定:④と⑤で取り出した変数でフォルダパスを作成
⇒💡最初は③のみで検索していましたが、多くのフォルダを検索する事で3分かかっていたため、④と⑤でフォルダを指定、⑥で動的なフォルダパスを作成する事で、検索するフォルダを絞り込み、検索時間を減らしました!

⑦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のアップデートを網羅していない点も多かったです。
また実際に作り、周囲に使ってもらう事で、改めて動作や仕様の改善点についての気づきを得られました。何をどう自動化、簡易化するかは作りながら分かってくる事もありますが、事前にもっと深堀り出来ると、より良いツールが作れるなと実感しました。