- Power Automate Desktopでファイル名を取得したい
- 特定のファイル形式でのみファイル名を取得したい
- 取得したファイル名を使って資料を作成したい
当記事では、上記の疑問にお答えします。
Power Automate Desktopに限らず、どんなプログラミング言語でもファイル名の取得はできます。
しかし「ファイル名を取得して一体何ができるの?」と思っている方も多いのではないでしょうか。
そこで当記事では、Power Automate Desktopを使ってフォルダー内のファイル名を取得する方法を解説します。
また応用として、特定のファイル形式のファイル名のみを取得したり取得したファイル名を使って簡単な資料を作ったりする方法も解説します。
ぜひ一度読んでみてください。
あわせて読みたい
目次
著:やまもとてつや
|
Tipstour初の電子書籍化! 37歳で初の正社員となりITヘルプデスクとして勤務中の著者が、Power Automate Desktopを使った8つのメール作業・自動化事例とその方法を本書でご紹介しています。 これを読めば、ヘルプデスクの担当者はもちろん、WindowsPCで作業するすべてのワーカーの面倒なメール作業を自動化可能です。 Kindle Unlimitedで読み放題対象! |
【前提】ファイル名の取得はフォルダーアクションから実行できる
ファイル名の取得はフォルダーアクションのフォルダー内のファイルを取得から実行できます。
取得したファイル名はリスト形式で保存され、For Eachアクションを使えば様々な処理に応用可能です。
詳細は下記記事の該当項目で解説していますので、ぜひ読んでみてください。
【応用①】PDFやExcelファイルのファイル名だけを取得する方法
フォルダー内のファイル名を取得するのファイルフィルター欄にはデフォルトで*(アスタリスク)が入っており、フォルダ内のファイルすべてを取得できます。
しかし、状況によってはPDFファイルやExcelファイルだけを取得したい場合もあるでしょう。
特定のファイル形式のファイルを取得したい場合は*の後に、拡張子を入力します。
下記のフォルダー内のファイルを使って、実際にPDFファイルだけを取得してみましょう。
種類欄にHTML Documentと書いてあるのがPDFファイルになります(自身の環境によって、表現は変わります)。
下記のようにフォルダパスを設定後、ファイルフィルター欄にある*の後にpdfと入力してください。
実行すると、PDFファイルが2つ取得できます。
実行後、右側のフロー変数にあるFilesをダブルクリックしてください。
ダブルクリックすると以下の画像が表示されます(右下をドラッグすると拡張できます)。
PDFファイルだけを取得できました!
【応用②】取得したファイル名からドキュメント管理表のExcelを作成する
取得したファイル名を使って、簡単なドキュメント管理表をExcelで作ってみましょう。
ヘルプデスクに限らず、あらゆる業務にはマニュアルが存在するはずです。
マニュアルには、いつ作成したか?更新されたか?を記載する管理表が存在し、更新や新規作成があれば管理表に記載します。
管理表があれば、マニュアルが保管してある場所やそもそもその業務についてのマニュアルが存在しているかどうかを把握可能です。
しかし、この管理表を作成するのが面倒なんですよね。
そこで考えたのが、このフローです。
新規作成が前提のフローですが、応用次第で更新があった場合の対処もできます。
ひとまずは4ステップで新規で管理表を作ってみましょう。
先程と同じフォルダーを使用します。
今回はこのフォルダの中から「マニュアル」と書いてあるファイル名だけを取得し、さらに取得したファイルのプロパティを使ってファイルパスや作成日時をExcelに転記します。
入力するプロパティは下記3つです。
- ファイル名:Name
- ファイルパス:Directory
- 作成日時:CreationTime
【ステップ①】マニュアルと書いてあるファイル名だけを取得する
まずはマニュアルと書いてあるファイル名だけを取得します。
フォルダーアクションにあるフォルダー内のファイルを取得をドラッグ&ドロップしてください。
画面が変わったら、ファイルフィルター欄に*マニュアル*と入力します。
上記のように入力すれば、ファイル名の前に何かあっても拡張子がどれであっても抽出できます。
入力が終わったら、保存して実行してみましょう。
マニュアルが含まれたファイル名だけを抽出できました!
取得したファイルはすべて変数Filesに格納されているのを、確認しておきましょう。
【ステップ②】マニュアル管理表のExcelを開く
抽出したファイル名をExcelに転記しましょう。
以下のExcelファイルを用意しました。
まずはExcelアクションからExcelの起動をドラッグ&ドロップします。
画面が変わったら、Excelの起動欄を次のドキュメントを開くに変更します。
変更後、該当のExcelファイルを選択して保存してください(ご自身の環境によって、ドキュメントパス欄の記載は変わります)。
【ステップ③】For Eachを使って、必要項目を入力する
次にループアクションからFor Eachをドラッグ&ドロップしましょう。
画面が変わったら、反復処理を行う値欄にステップ①で生成した変数Filesを入力して保存します。
ファイル名を転記する準備が整ったら、ExcelアクションにあるExcelワークシートから最初の空の行や列を取得をFor EachとEndの間にドラッグ&ドロップしてください。
画面が変わったら、そのまま保存しましょう。
For Each内に入れておけば、ファイル名を入力する行が自動的に変わるようになります。
ここまでできたら、いよいよファイル名を転記します。
ExcelアクションにあるExcelワークシートに書き込むをEndの前にドラッグ&ドロップしてください。
画面が変わります。
以下のように入力しましょう。
- 書き込む値:%CurrentItem.Name%
- 書き込みモード:指定したセル上
- 列:2
- 行:%FirstFreeRow%
.Nameには拡張子が含まれているので、必要ない場合は.NameWithoutExtensionと記載してください。
ファイル名を2列目に取得したファイルの数だけ入力していきます。
行を%FirstFreeRow%としておけば、繰り返す度に最初の空白行が更新されていくので同じ行に入力され続けるのを防げます。
【ステップ④】プロパティを使ってファイルパスと作成日時も転記する
残りのファイルパスと作成日時も転記してみましょう。
まずはファイルパスです。
ExcelアクションにあるExcelワークシートに書き込むをEndの前にドラッグ&ドロップしてください。
画面が変わったら、以下のように入力します。
- 書き込む値:%CurrentItem.Directory%
- 書き込みモード:指定したセル上
- 列:3
- 行:%FirstFreeRow%
保存後、もう一度Excelワークシートに書き込むをドラッグ&ドロップしましょう。
今度は作成日時を転記するため、書き込む値を%CurrentItem.CreationTime%にし、列を4に設定します。
しかし、この状態で実行すると下記画像のように入力されます。
問題がなければこのままでもいいのですが、時間は不要な場合が多いと思いますので、今回は日付のみを入力していきます。
テキストアクションからdatetimeをテキストに変換を6と7の間にドラッグ&ドロップしてください。
画面が変わったら、以下のように入力します。
- 変換するdatetime:%CurrentItem.CreationTime%
- 使用する形式:標準
- 標準形式:短い日付形式
生成された変数としてFormattedDateTimeが生成されますが、今回はCreationTimeと変数名を修正しました。
もちろん、生成された変数名のまま使っても構いませんので問題なければ、保存しましょう。
保存後、作成日時を転記するExcelワークシートに書き込むを以下のように修正してください。
- 書き込む値:datetimeをテキストに変換時に生成された変数(今回は%CreationTime%)
- 書き込みモード:指定したセル上
- 列:4
- 行:%FirstFreeRow%
最後にEndのあとにExcelアクションのExcelを閉じるをドラッグ&ドロップしてください。
Excelを閉じる前欄をドキュメントを保存に変更して保存します。
では、実行してみましょう。
マニュアル管理表が作成できました!
今回作成したフローの全体図は下記になります。
※当機能は現在ベータ版です。 予告なく公開終了する場合があります。
まとめ
以上、ファイル名の取得方法を解説しました。
ファイル名の取得では、特定の拡張子のファイルや特定の文字列が入ったファイルなど様々な条件でファイルを取得できます。
またファイル名だけでなくファイルの作成日時やフォルダパスなども取得可能です。
今回は応用としてファイル名やフォルダパスなどを取得してドキュメント管理表を作ってみました。
取得できる要素は多数あるので、アイディア次第で様々な資料を自動で作成できます。
ぜひ、試してみてください。