Power Automateについて詳しく解説します
- 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ファイルだけを取得したい場合もあるでしょう。
特定のファイル形式のファイルを取得するには*の後に、拡張子を入力します。
下記のフォルダー内のファイルを使って、2つのPDFファイルを取得してみましょう。
種類欄にHTML Documentと書いてあるのがPDFファイルになります(ご自身の環境によって、表示は変わります)。
下記のようにフォルダーパスを設定後、ファイルフィルター欄にある*の後にpdfと入力してください。
フロー実行後、右側のフロー変数にある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を閉じる前欄をドキュメントを保存に変更して保存します。
では、実行してみましょう。
マニュアル管理表が作成できました!
今回作成したフローは下記になります。
まとめ
以上、ファイル名の取得方法について解説しました。
ファイル名の取得では、特定の拡張子のファイルや特定の文字列が入ったファイルなど様々な条件でファイルを取得できます。
またファイル名だけでなくファイルの作成日時やフォルダパスなども取得可能です。
今回は応用としてファイル名やフォルダーパスなどを取得してドキュメント管理表を作ってみました。
取得できる要素は多数あるので、アイディア次第で様々な資料を自動で作成できます。
ぜひ、試してみてください。